MATLAB® represents
infinity by the special value inf
. Infinity results
from operations like division by zero and overflow, which lead to
results too large to represent as conventional floating-point values. MATLAB also
provides a function called inf
that
returns the IEEE® arithmetic representation for positive infinity
as a double
scalar value.
Several examples of statements that return positive or negative infinity in MATLAB are shown here.
|
|
|
|
Use the isinf
function
to verify that x
is positive or negative infinity:
x = log(0); isinf(x) ans = 1
MATLAB represents values that are
not real or complex numbers with a special value called NaN
,
which stands for “Not a Number”. Expressions like 0/0
and inf/inf
result
in NaN
, as do any arithmetic operations involving
a NaN
:
x = 0/0 x = NaN
You can also create NaN
s by:
x = NaN; whos x Name Size Bytes Class x 1x1 8 double
The NaN
function returns
one of the IEEE arithmetic representations for NaN
as
a double
scalar value. The exact bit-wise hexadecimal
representation of this NaN
value is,
format hex x = NaN x = fff8000000000000
Always use the isnan
function
to verify that the elements in an array are NaN
:
isnan(x) ans = 1
MATLAB preserves the “Not a Number” status
of alternate NaN
representations and treats all
of the different representations of NaN
equivalently.
However, in some special cases (perhaps due to hardware limitations), MATLAB does
not preserve the exact bit pattern of alternate NaN
representations
throughout an entire calculation, and instead uses the canonical NaN
bit
pattern defined above.
Because two NaN
s are
not equal to each other, logical operations involving NaN
always
return false, except for a test for inequality, (NaN ~= NaN
):
NaN > NaN ans = 0 NaN ~= NaN ans = 1