Creating a function with a logical output.
    9 ビュー (過去 30 日間)
  
       古いコメントを表示
    
Hi all,
I am quite confused. I have a function say like this:
function [output] = TLU( inputs, weights, threshold )
activationMagnitude = sum(weights.*inputs)
if activationMagnitude > threshold
output = true;
else
output = false;
end
But when I use class(ans) it always shows a char data type - despite me specifying the output as either true or false!
Why is this?
Best regards,
Craig
採用された回答
  Thorsten
      
      
 2013 年 2 月 14 日
        
      編集済み: Thorsten
      
      
 2013 年 2 月 14 日
  
      There's nothing wrong with your function, you can just do it more concisely
function output = TLU( inputs, weights, threshold )
output = sum(weights.*inputs)  > threshold;
Then
y = TLU([1 2 3], [ 4 5 6 ], 100)
yields
 y =
      0
And
class(y)
yields
ans =
    logical
But of course then class(ans) gives char (because ans is the string 'logical'), but this has nothing to do with the class returned by your function.
0 件のコメント
その他の回答 (1 件)
  José-Luis
      
 2013 年 2 月 14 日
        It does return logical for me.
What does
 class(TLU(rand, rand, rand))
return? If ans returns something different, you may have overwritten its value before you call to class()
1 件のコメント
  Azzi Abdelmalek
      
      
 2013 年 2 月 14 日
				
      編集済み: Azzi Abdelmalek
      
      
 2013 年 2 月 14 日
  
			The question is what ans represent?
参考
カテゴリ
				Help Center および File Exchange で Language Support についてさらに検索
			
	製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!