Frage

Gibt es einen Befehl in MATLAB, die mir alle NaN (Not-a-Number) Elemente innerhalb eines Arrays zu finden?

War es hilfreich?

Lösung 3

Ich habe gerade die Antwort:

k=find(isnan(yourarray))

k wird eine Liste von NaN Elemente indicies sein.

Andere Tipps

Wie bereits erwähnt, ist die beste Antwort isnan () (obwohl +1 für Holzhackschnitzel Meta-Antwort). Ein vollständigeres Beispiel dafür, wie es mit dem logischen Indizierung verwenden:

>> a = [1 nan;nan 2]

a =

  1   NaN
NaN     2

>> %replace nan's with 0's
>> a(isnan(a))=0

a =

 1     0
 0     2

isnan (a) gibt eine logische Array, ein Array von true & falsch die gleichen Größe wie ein mit "true" jedem Ort gibt es eine nan, die Index in a.

Während isnan die richtige Lösung ist, werde ich darauf hinweisen, genau so, wie es gefunden zu haben. Verwenden Sie lookfor. Wenn Sie den Namen einer Funktion in MATLAB nicht kennen, versuchen lookfor.

lookfor nan

Sie werden schnell die Namen geben einige Funktionen, die mit NaNs arbeiten, sowie die erste Zeile ihrer Hilfe Blöcke geben. Hier wäre es aufgeführt (unter anderem)

isNaN gilt für Nicht-a-Nummer.

das ist eindeutig die Funktion, die Sie verwenden möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top