2010-11-11 21 views
15

Estoy escribiendo una función en Matlab. Debería haber algo mal. La salida de mi función es un vector. Cuando veo cada elemento de mi vector veo NaN (No es un número) y NaNi, ¿realmente no lo sé?¿Qué es NaNi, y cómo es diferente de NaN?

¿Alguien sabe lo que es NaNi?

Respuesta

26

NaNi es un imaginario Not-A-Number:

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

+ 1: la mejor respuesta en SO 'un número imaginario' :-) –

+5

@High Performance Mark: Me pregunto si es posible ser incluso menos que un número. – Jonas

+0

No estoy de acuerdo con esta interpretación. _NaNi_ no sale per se. La explicación correcta está dada por @Dennis Jaheruddin donde NaNi es la concatenación de consola de _NaN_ y _i_ (la notación imaginaria de matlab). – marsei

4

En realidad NaNi no existe en Matlab.

cuando tiene un número complejo, los valores mostrados son 'la parte real' + 'la parte compleja' + 'i'. Esto se muestra sin un espacio antes de la i, Proveedores:

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

Esto significa que si la parte compleja del número es NaN, se imprime junto con i y parece ser una sola palabra NaNi. Por ejemplo:

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

Usted encontrará que no es posible evaluar por separado NaNi o se multiplica por 1.

Además los resultados esperados se producen al inspeccionar el resultado:

real(x) % This will give 0 
imag(x) % This will give NaN 
Cuestiones relacionadas