Matlab:0<;NaN=0

Matlab:0<;NaN=0,matlab,nan,Matlab,Nan,我真的被这个错误弄糊涂了 这真的是MATLAB所期望的,还是一个bug 为什么0谢谢大家,我也在java中测试过,这里MATLAB使用java来做UI和其他用途,但是要清楚的是,MATLAB中的核心数字算法都是C++代码或标准数字库的基础。为什么这么说?“NaN上唯一定义良好的逻辑运算符是~="? 文档说明,涉及NaNs的逻辑操作总是返回false,除了~=。所以=和~=在NaN@LuisMendo编辑了我糟糕的单词选择。现在+1。不过,我不会说“因此不能对NaN使用任何比较运算符”。你可以。你

我真的被这个错误弄糊涂了

这真的是MATLAB所期望的,还是一个bug

为什么0 根据,唯一不使用
NaN
返回
false
的逻辑运算符是
~=
(不等于)

不过,这在逻辑上是有道理的:如果某事物“不是数字”,那么它就不能(不应该)与数字相比较
NaN
不等于任何东西

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


简而言之,它不是一个bug

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


< /P>谢谢大家,我也在java中测试过,这里MATLAB使用java来做UI和其他用途,但是要清楚的是,MATLAB中的核心数字算法都是C++代码或标准数字库的基础。为什么这么说?“NaN上唯一定义良好的逻辑运算符是

~=
"? 文档说明,涉及
NaN
s的逻辑操作总是返回
false
,除了
~=
。所以
=
~=
NaN
@LuisMendo编辑了我糟糕的单词选择。现在+1。不过,我不会说“因此不能对NaN使用任何比较运算符”。你可以。你只需要理解结果,可以用“a
NaN
不等于任何东西”来表达