我的MATLAB版本是: 9.3.0.713579(R2017b)
根据IEEE 754-2008,MATLAB中的NaN值不正确:
>> format hex
>> single(+NaN)
ans =
single
ffc00000
>> single(-NaN)
ans =
single
7fc00000
由于二进制值MSB
表示单精度浮点数的符号,因此single(+NaN)
的值应为7fc00000
,而{{1}的值}应该为single(-NaN)
。
MATLAB错误吗?是否已在最新版本中修复?
答案 0 :(得分:3)
MATLAB错误吗?
否。
有multiple representations of NaN in IEEE-754。特别地,符号位可以是零或一。程序可以使用其中的任何一个,而Matlab并不声称特别使用任何一个。 ffc00000
是其中之一; {{1}}是另一个。