2010-11-11 13 views
15

Piszę funkcję w Matlab. Coś powinno być nie tak. Wyjściem mojej funkcji jest wektor. Kiedy widzę każdy element mojego wektora widzę NaN (Nie numer) i NaNi, którego tak naprawdę nie wiem?Co to jest NaNi, i jak jest inny fron NaN?

Czy ktoś wie co to jest NaNi?

Odpowiedz

26

NaNi jest wyimaginowany Not-A-Number:

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

+ 1: najlepsza odpowiedź na zawsze "wyimaginowana nie-liczba" :-) –

+5

@High Performance Mark: Zastanawiam się, czy możliwe jest nawet mniej niż liczba. – Jonas

+0

Nie zgadzam się z tą interpretacją. _NaNi_ nie wychodzi per se. Prawidłowe wyjaśnienie podaje @Dennis Jaheruddin, gdzie NaNi jest połączeniem konsolowym _NaN_ i _i_ (notacja wyobrażeniowa matlab). – marsei

4

Właściwie Nani nie istnieje w Matlab.

jeśli masz liczbę zespoloną, wyświetlane wartości to "rzeczywista część" + "część złożona" + "i". Jest to pokazane bez spacji przed i, spróbuj:

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

Oznacza to, że jeśli kompleks część numeru jest NaN, jest ona drukowana wraz z I i wydaje się być pojedynczym słowem Nani. Na przykład:

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

Przekonasz się, że nie jest możliwe, aby osobno ocenić Nani lub pomnożyć ją z 1.

Ponadto oczekiwane rezultaty są wytwarzane podczas inspekcji wynik:

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