2010-11-11 257 views
15

我正在用Matlab写一个函数。应该有什么问题。我的函数的输出是一个向量。当我看到我的矢量的每个元素时,我都看到NaN(不是数字)和NaNi,那我真的不知道?NaNi是什么,它与NaN有什么不同?

有谁知道什么是NaNi?

回答

26

NaNi是一个虚构的Not-A-Number

>>NaN*i 
ans = 
      0 +  NaNi 
+11

+ 1:有史以来最好的答案'一个虚构的非数字':-) – 2010-11-11 15:23:49

+5

@高性能标记:我想知道是否有可能比这更少。 – Jonas 2010-11-11 18:03:14

+0

我不同意这种解释。 _NaNi_本身不会退出。 @Dennis Jaheruddin给出了正确的解释,其中NaNi是_NaN_和_i_(matlab想象符号)的控制台连接。 – marsei 2013-07-23 10:10:21

4

其实纳尼并没有在Matlab中存在。

当你有一个复杂的数字时,显示的值是'真实部分'+'复杂部分'+'我'。这是在不第i之前的空间中示出,尝试:

(-1)^0.5 %This will give 0.0000 + 1.0000i 

这意味着,如果所述数目的复杂的部分是NaN,则与I一起打印,似乎是一个字纳尼。例如:

NaN*(1+i) % This will give NaN + NaNi 
x = NaN*i % This will give 0 + NaNi 

你会发现,这是不可能单独评估纳尼或具有1

此外检查结果,当预期的产出生产相乘:

real(x) % This will give 0 
imag(x) % This will give NaN 
相关问题