MATLAB: What is wrong in this? how to use isinteger

isintegervalid_date

function valid= valid_date3(y,m,d)
if ~isscalar(y) || ~isscalar(m) || ~isscalar(d) || ~isinteger(y) || ~isinteger(m) || ~isinteger(d) || y<1 || m<1 || d<1
valid=false;
return
end
valid=valid_date3(1900,2,28)
valid =
logical
0
.

Best Answer

To test whether a variable is integer-valued, you would do
y==round(y)
isinteger is for something completely different. It simply tests whether y is stored in floating point form, or as an integer data type, e.g.,
>> isinteger(5)
ans =
logical
0
>> isinteger(uint8(5))
ans =
logical
1
Related Question