我在Matlab中编写一个函数。应该有些不对劲。我的函数的输出是一个向量。当我看到向量的每个元素时,我看到NaN
(非数字)和NaNi
,我真的不知道?
有人知道什么是NaNi?
答案 0 :(得分:26)
NaNi
是一个虚构的Not-A-Number:
>>NaN*i
ans =
0 + NaNi
答案 1 :(得分:4)
实际上在Matlab中不存在NaNi。
当你有一个复数时,显示的值是'真实部分'+'复杂部分'+'i'。这显示在i之前没有空格,请尝试:
(-1)^0.5 %This will give 0.0000 + 1.0000i
这意味着如果数字的复杂部分是NaN,则它与i一起打印并且看起来是单个单词NaNi。例如:
NaN*(1+i) % This will give NaN + NaNi
x = NaN*i % This will give 0 + NaNi
您会发现无法单独评估NaNi或将其乘以1.
此外,在检查结果时会产生预期的输出:
real(x) % This will give 0
imag(x) % This will give NaN