Returns a value that represents ``not-a-number'' for both 32 and 64-bit floating point values. This constant is meant to represent the result of arithmetic operations whose output cannot be meaningfully defined (like zero divided by zero).
y = nan
The returned type is a 32-bit float, but promotion to 64 bits preserves the not-a-number. The not-a-number constant has one simple property. In particular, any arithmetic operation with a NaN results in a NaN. These calculations run significantly slower than calculations involving finite quantities! Make sure that you use NaNs in extreme circumstances only. Note that NaN is not preserved under type conversion to integer types (see the examples below).
The following examples demonstrate a few calculations with the not-a-number constant.
--> nan*0
ans =
<float> - size: [1 1]
nan
--> nan-nan
ans =
<float> - size: [1 1]
nan
Note that NaNs are preserved under type conversion to floating point types (i.e., float, double, complex and dcomplex types), but not integer types.
--> uint32(nan)
ans =
<uint32> - size: [1 1]
0
--> complex(nan)
ans =
<complex> - size: [1 1]
nan 0.00000000 i