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

文章介绍了在Matlab中如何表示和处理无穷大(inf)与非数字(NaN)。inf用于表示超出浮点数范围的结果,而NaN则代表非数字值,如缺失或未定义的数据。通过函数inf和nan可以创建这两个特殊值,运算如零除和溢出会产生inf。isinf和isnan函数用于检测变量是否为无穷大或非数字。在Matlab中,inf与inf相等,但nan与nan不等,且涉及nan的比较通常返回假。
1134

被折叠的 条评论
为什么被折叠?



