Documentation Center

  • Trials
  • Product Updates

Infinity and NaN

Infinity

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.

x = 1/0
x =
Inf

x = 1.e1000
x =
   Inf

x = exp(1000)
x =
   Inf

x = log(0)
x =
   -Inf

Use the isinf function to verify that x is positive or negative infinity:

x = log(0);

isinf(x)
ans =
     1

NaN

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

Use the isnan function to verify that the real part of x is NaN:

isnan(x)
ans =
     1

MATLAB also provides a function called NaN that returns the IEEE arithmetic representation for NaN as a double scalar value:

x = NaN;

whos x
  Name      Size                   Bytes  Class

  x         1x1                        8  double

Logical Operations on NaN

Because two NaNs 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

Infinity and NaN Functions

See Infinity and NaN Functions for a list of functions most commonly used with inf and NaN in MATLAB.

Was this topic helpful?