Matlab:0 < NaN = 0
Posted
技术标签:
【中文标题】Matlab:0 < NaN = 0【英文标题】:Matlab: 0 < NaN = 0 【发布时间】:2015-11-27 08:39:56 【问题描述】:我真的被这个错误绊倒了。
这真的是 MATLAB 所期望的还是一个错误?
为什么 0
【问题讨论】:
谢谢大家,我也刚刚在 Java 中测试了这个,其中 0根据MathWorks' documentation on NaN,唯一不返回false
和NaN
的逻辑运算符是~=
(不等于)。
这在逻辑上是有道理的:如果某物“不是数字”,它就不能(不应该)与数字进行比较。 NaN
不等于任何东西。
此外,这是一个 IEEE 标准:NaN
是无序的,因此无法比较。它不适用于任何符合 IEEE 754 的语言。
简而言之,这不是错误。
【讨论】:
为什么说“NaN
上唯一定义良好的逻辑运算符是~=
”?该文档指出,涉及NaN
s 的逻辑操作始终返回false
,~=
除外。所以==
和~=
在NaN
上都有很好的定义
@LuisMendo 编辑了我糟糕的单词选择。
现在+1。不过,我不会说“因此您不能将任何比较运算符与 NaN 一起使用”。你可以。您只需要了解结果,可以表述为“NaN
不等于任何东西”【参考方案2】:
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/
【讨论】:
以上是关于Matlab:0 < NaN = 0的主要内容,如果未能解决你的问题,请参考以下文章