Warum funktioniert das Ersetzen von NaNs einer Matrix nicht mit k (k == NaN) = SomeNumber, wobei k die zu betreibende Matrix ist

7

Gegeben eine Matrix: -

%Vor%

Wenn ich eine Zahl, zB 2, durch 0 ersetzen möchte, kann ich das verwenden: k(k==2) = 0 . Es funktioniert korrekt und gibt die folgende erwartete Antwort: -

%Vor%

Aber warum funktioniert das nicht, wenn ich versuche, NaN zu ersetzen, d. h. k(k==NaN) = 0 gibt Folgendes:

%Vor%

Obwohl ich das gewünschte Ergebnis erreichen kann mit: k(isnan(k))=0 . Aber warum funktioniert der erste Ansatz nicht?

    
Sardar Usama 26.07.2016, 10:28
quelle

1 Antwort

16

Weil NaN==NaN ist 0 .

Keine Zahl ist gleich einer Zahl? Nicht wirklich, sie sind keine Zahlen, aber nicht unbedingt dasselbe. Das ist Absicht.

Ist 0/0 == Inf-Inf ? Definitiv nicht. Beide sind NaN though.

Lesen Sie hier mehr

    
Ander Biguri 26.07.2016, 10:39
quelle

Tags und Links