check for “Not a Number” entries
r=isnan(x)
:x real or complex vector or matrix r : boolean vector or matrix :
isnan(x) returns a boolean vector or matrix which contains true entries corresponding with “Not a Number” x entries and false entries corresponding with regular x entries.
In this paragraph, we give the reason of the existence of this function. Consider the floating point number x and assume that we want to know if this number is a Not A Number. The condition (x==%nan) is false if x is equal to %nan. This is why the function isnan is helpful: it allows to see if a floating point number is a NaN, without actually comparing its value against %nan.
isnan([1 0.01 -%nan %inf-%inf])
In the following example, we see that %nan has very particular comparison properties and compare the result with the isnan function.
%nan == %nan
%nan <> %nan
isnan(%nan)
In the following example, we extract the non-NaNs values y from the array x.
x = [1 2 %nan 3 %nan 4]
k = `find`_(~isnan(x))
y = x(k)