Matlab:0< NaN = 0

时间:2015-09-02 00:41:08

标签: matlab nan

我错过了这个错误。

这是否真的是从MATLAB预期的,还是一个bug?

为什么不会0< NaN产生错误?

2 个答案:

答案 0 :(得分:8)

根据MathWorks' documentation on NaN,唯一没有falseNaN一起返回的逻辑运算符是~=(不等于)。

这在逻辑上是有道理的:如果某些东西是"而不是数字",它不能(不应该)与数字进行比较。 NaN并不等同于任何事情。

此外,这是IEEE标准:NaN是无序的,因此无法进行比较。它不适用于任何符合IEEE 754标准的语言。

简而言之,它不是一个错误。

答案 1 :(得分:8)

NaN具有特殊属性。用NaN进行的数学运算产生NaN(x + NaN = NaN)。与NaN的比较返回false。

http://blogs.mathworks.com/seth/2009/02/04/how-do-i-test-for-nan-in-my-model/