自学笔记十五:详谈Matlab中的Inf和NaN是什么鬼?

1.概念

众所周知,数学上表达无穷大使用符号“∞”,在Matlab中,用特殊字符“inf”表示无穷大,比如零除和溢出等这样的运算会产生无穷大,这导致结果太大而不能用传统的浮点值表示;

用特殊字符“NaN”表示既不是实数也不是复数的“非数字”的值,例如,当把Excel文件中的数据读取到Matlab中时,若只读取数值型数据,那么数据中的缺失值自动使用NaN来表达;

2.Inf的创建和产生

创建无穷大的函数是inf,除此之外,一些运算也会生成Inf;

程序示例:

a=inf

1/0 %无穷大

1e309 %超过存储范围,返回无穷大

realmax %浮点型最大取值范围

realmax+1e30 %最大取值+1e30并未返回无穷大值

realmax+1e300 %最大取值+1e300返回无穷大值

3. NaN的创建和产生

创建非值的函数是nan,除此之外,一些运算也会生成NaN;

程序示例:

a=nan %nan

inf/inf %nan

0/0 %nan

4. Inf的判断和运算

判读一个变量是否为无穷大使用函数isinf,在Matlab里,inf与inf相等判断为真;

程序示例:

isinf(exp(1000)) %返回逻辑1,是无穷大

inf==inf %返回逻辑值为真

inf+10 %返回Inf

inf-1e308 %返回Inf

inf+inf %返回Inf

5. NaN的判断和运算

判读一个变量是否为非值使用函数isnan,在Matlab里,nan与nan相等判断为假;

程序示例:

a=nan

isnan(a) %返回逻辑值为真

nan==nan %0假,非值无法定义,因此相互之间不相等

nan>0

nan<0

nan~=nan

%涉及nan的逻辑运算结果通常为0

End

你可能感兴趣的:(matlab,开发语言)