Naor - for MATLAB R2014a (on OS X 10.9.5) in order for
validateattributes(obj,{'MyClass'},{'positive'})
to pass, you need the following anonymous function to resolve to true
@(x)(isnumeric(x)||islogical(x))&&isreal(x)&&~any(x(:)<=0)
where x is the instance of your MyClass. I suspect that all you are missing is the isreal overload as you should have the isnumeric and le already. For
validateattributes(obj,{'MyClass'},{'nonnegative'})
you need the following anonymous function to resolve to true
@(x)(isnumeric(x)||islogical(x))&&isreal(x)&&~any(x(:)<0)
with the only other function that you need to overload being the lt one.
Best Answer