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;
output = false;
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?
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;
y = TLU([1 2 3], [ 4 5 6 ], 100)
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.
It does return logical for me.
class(TLU(rand, rand, rand))
return? If ans returns something different, you may have overwritten its value before you call to class()