Matlab: 0 < NaN = 0

Matlab: 0 < NaN = 0

我真的被这个错误绊倒了。

这真的是 MATLAB 所期望的还是一个错误?

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

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

不过,这在逻辑上是有道理的:如果某物是 "not a number",则它不能(不应该)与数字进行比较。 NaN 不等于任何东西。

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

简而言之,这不是错误。

NaN 具有特殊的性质。使用 NaN 执行的数学运算结果为 NaN (x+NaN = NaN)。与 NaN 的比较 return false.

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