我错过了这个错误。
这是否真的是从MATLAB预期的,还是一个bug?
为什么不会0< NaN产生错误?
答案 0 :(得分:8)
根据MathWorks' documentation on NaN,唯一没有false
与NaN
一起返回的逻辑运算符是~=
(不等于)。
这在逻辑上是有道理的:如果某些东西是"而不是数字",它不能(不应该)与数字进行比较。 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/