我一直被这个错误所困扰。
这是MATLAB预期的行为还是一个bug?
为什么0 < NaN不会产生错误?
我一直被这个错误所困扰。
这是MATLAB预期的行为还是一个bug?
为什么0 < NaN不会产生错误?
false
的逻辑运算符是~=
(不等于),这在逻辑上是有道理的:如果某个东西是“非数字”,它就不能(也不应该)与数字进行比较。NaN
无法等于任何东西。此外,这是IEEE标准: NaN
是无序的,因此无法进行比较。它在任何符合IEEE 754标准的语言中都不起作用。简而言之,这不是一个错误。NaN
上唯一定义良好的逻辑运算符是~=
”?文档说明涉及NaN
的逻辑运算始终返回false
,除了~=
。因此,==
和~=
在NaN
上都是定义良好的。 - Luis MendoNaN
不等于任何东西”。 - Luis MendoNaN具有特殊属性。与NaN进行数学运算的结果为NaN(x + NaN = NaN)。与NaN进行比较返回false。
http://blogs.mathworks.com/seth/2009/02/04/how-do-i-test-for-nan-in-my-model/