Wie zum Extrahieren von Nullen in Matlab

December 28

Wie zum Extrahieren von Nullen in Matlab

Nullwerte in der MATLAB-Daten-Array können Ihre Datenanalyse erschweren. Statistiken oder Signalverarbeitung Berechnungen kann sinnlose Ergebnissen führen. Grundstücke möglicherweise schwer zu lesen, wenn NULL-Werte dargestellt werden. Nullwerte--herausnehmen aus Ihren Datenarray--extrahieren, können Sie mit den Nutzdaten um aussagekräftige Ergebnisse zu erhalten zu arbeiten.

Anweisungen

1 Kopieren Sie Ihre ursprünglichen Datenarray in eine andere Variable, indem Sie einen neuen Variablennamen seinen Wert zuweisen. Wenn das Array zu verwenden, wie es war, bevor Sie die Nullen entfernt werden sollen, können Sie diese neue Variable.

Wenn das Array aufgerufen wird M, z. B. Zuweisen einer neuen Variable mit dem Namen Mzeros. Geben Sie hierzu "Mzeros = M" (ohne Anführungszeichen) in der Matlab-Befehlszeile.

2 Speichern Sie das ursprüngliche Datenarray in einer Textdatei, für den Fall, dass Sie es später noch einmal brauchen mit der MATLAB-Funktion "Dlmwrite". Wenn die MATLAB-Variable Speichern Ihrer Daten versehentlich gelöscht oder überschrieben ruft, können Sie die ursprünglichen Daten aus diesem Text-Datei erneut laden.

Geben Sie beispielsweise, wenn die ursprünglichen Daten-Array in der Variablen Mzeros gespeichert ist, "Dlmwrite ('Mzeros.dat ', Mzeros)" (ohne Anführungszeichen) Mzeros schreiben in eine Textdatei namens Mzeros.dat.

Sie können diesen Schritt überspringen, wenn Ihre Daten bereits in einer Textdatei gespeichert werden.

3 Entscheiden Sie, ob Sie Ihre Datenarray die gleiche Größe und Form halten müssen. Halten Sie die Array-Größe und Form, wenn Zeilen und Spalten des Arrays besondere Bedeutung haben (z. B. jede Zeile stellt eine verschiedene experimentelle Testversion und jede Spalte steht für einen unterschiedlichen gemessene Menge). Um die gleiche Größe und Form zu halten, ersetzen Sie jedes Nullwert durch einen Platzhalterwert Nan (für "not a Number").

Um die NULL-Werte in ein Array namens M mit NaN ersetzen, geben Sie "M(M==0) = NaN" ohne Anführungszeichen. Achten Sie darauf, Typ M == 0 mit zwei Gleichheitszeichen. Dieser Befehl weist MATLAB finden alles, was die Elemente von M Null gleich, und ersetzen Sie sie durch NaN.

Alles im Array bleibt die gleiche position (dieselbe Zeile und Spalte), aber die Nullen werden jetzt NaN. Da die meisten Funktionen in MATLAB NaN-Werte ignorieren, können zeichnen und Analysieren der Daten, als ob die NaNs nicht da, aussagekräftige Ergebnisse immer waren.

4 Sie können die NULL Elemente löschen vollständig (und nicht als Platzhalter ersetzen) Wenn das Array eine einfache Liste von Werten, ohne sinnvolle Zeilen und Spalten ist. Um die NULL Elemente in ein Array namens M zu löschen, geben Sie "M(M==0) [] =" (ohne Anführungszeichen). Achten Sie darauf, Typ M == 0 mit zwei Gleichheitszeichen. Dieser Befehl weist MATLAB finden alles, was die Elemente von M Null gleich, und ersetzen Sie sie durch []. [] darstellt "leer." [] Einen Wert ersetzen, wird dieses Element gelöscht.

Sei M ein zweidimensionales Array, jetzt werden ein Spaltenvektor mit allen ungleich null Elementen aus der ursprünglichen M spaltenweise getroffen. Dies ist beispielsweise der Fall, wenn M war ein Array mit zwei Zeilen und vier Spalten:

[1-6-0-3

2 0 7 4]

Es werden jetzt

[1

2

6

7

3

[4].

Wenn M einem Vektor (nur eine Zeile oder Spalte) war, wird es nun einen kürzeren Vektor sein. Wenn M war z. B. [1 2 0 3], es werden jetzt [1 2 3].

Das Array ändert seine Größe und Form, wenn Sie NULL Elemente löschen. Aber da das Array keine Platzhalter-NaN-Werte hat, können Sie die Daten auch mit MATLAB-Funktionen, die nicht NaN-Werte ignorieren analysieren.

Tipps & Warnungen

  • Wenn Ihr Datenarray nicht ist mit dem Namen M, einfach mit dem Namen des Arrays M ersetzen, wenn Sie einen Befehl eingeben.
  • Stellen Sie sicher, dass die NULL-Werte wirklich bedeutungslos sind, bevor Sie sie entfernen. Wenn sie etwas in Ihren Daten bedeuten, konnte die entfernen sie falsche oder irreführende Ergebnisse liefern.
  • Wenn Ihr Datenarray sehr groß ist, konnte kopieren auf eine andere Variable in MATLAB zu viel Speicher, Verlangsamung oder abstürzt MATLAB nehmen. Sicherstellen, dass das Array wird in einer Textdatei gespeichert und kopiert es nicht zu einer anderen Variable.
  • Einige Funktionen in MATLAB NaNs nicht ignorieren, und können bei Störungen oder sinnlose Ergebnisse zurückgeben, wenn Sie NaN Platzhalter verwenden. Überprüfen Sie die MATLAB-Dokumentation für jede Funktion, die Sie in Ihrer Datenanalyse verwenden.