Entfernen von Nullen aus einem Vektor in MATLAB

Ammar Ali 18 August 2022
Entfernen von Nullen aus einem Vektor in MATLAB

In diesem Tutorial wird das Entfernen von Nullwerten aus einem Vektor mit der Funktion find() in MATLAB behandelt.

Entfernen Sie Nullen aus einem Vektor in MATLAB

Um Nullen aus einem Vektor zu entfernen, müssen wir die Indizes oder die Position der in einem Vektor vorhandenen Nullen mit der Funktion find() finden, die die Indizes der Nullen zurückgibt. Dann können wir ihnen mit einem leeren Vektor oder Nullvektor leere Werte zuweisen.

Standardmäßig gibt die Funktion find() die Indizes von Nicht-Null-Elementen zurück, aber wir können Bedingungen in die Funktion find() einfügen, um die Indizes von Nullen zurückzugeben. Lassen Sie uns zum Beispiel einen Vektor definieren, der einige Nullen enthält, und diese mit der Funktion find() entfernen.

Siehe Code unten.

clc
clear

n = [1 0 2 0 3 0]
indices = find(n==0)
n(indices) = []

Ausgabe:

n =

     1     0     2     0     3     0


indices =

     2     4     6


n =

     1     2     3

Wir können in der obigen Ausgabe sehen, dass die Funktion find() die Indizes zurückgegeben hat, die die Position aller im Vektor vorhandenen Nullwerte angeben, und dann haben wir die Indizes verwendet, um Nullen einen leeren Vektor zuzuweisen.

Innerhalb der Funktion find() haben wir die Bedingung n==0 definiert, was bedeutet, dass die Funktion die Werte des Vektors nacheinander durchgeht. Wenn ein Vektorwert gleich Null ist, gibt er seinen Index zurück und fährt mit dem nächsten Wert fort.

Wir können auch andere Bedingungen definieren, z. B. wenn wir andere im Vektor vorhandene Werte entfernen oder finden möchten. Wir können bedingte Operatoren wie kleiner als, gleich, größer als, kleiner oder gleich, größer als oder gleich und ungleich verwenden, um eine Bedingung innerhalb der Funktion find() zu definieren.

Wenn wir nicht alle Nullwerte entfernen wollen, sondern nur einige wenige Nullwerte wie die ersten beiden Werte, können wir das zweite Argument der Funktion find() verwenden, mit dem die Anzahl von gesetzt wird Indizes ausgeben.

Lassen Sie uns zum Beispiel das obige Beispiel wiederholen und die ersten beiden Nullen im Vektor entfernen. Siehe Code unten.

clc
clear

n = [1 0 2 0 3 0]
indices = find(n==0,2)
n(indices) = []

Ausgabe:

n =

     1     0     2     0     3     0


indices =

     2     4


n =

     1     2     3     0

Wir können in der obigen Ausgabe sehen, dass die ersten beiden Nullen entfernt wurden und die dritte Null immer noch im gegebenen Vektor vorhanden ist. Standardmäßig beginnt die Funktion find() mit der Suche nach dem Element am Anfang des Vektors.

Wir können es aber auch so einstellen, dass der Suchvorgang beim letzten Element des Vektors beginnt und sich zum ersten Element bewegt, indem das dritte Argument der Funktion find() verwendet wird, mit dem die Richtung festgelegt wird. Wir müssen den String last im dritten Argument der Funktion find() übergeben, um ihre Richtung festzulegen.

Lassen Sie uns zum Beispiel das obige Beispiel wiederholen und die letzten beiden Nullen entfernen, die im gegebenen Vektor vorhanden sind. Siehe Code unten.

clc
clear

n = [1 0 2 0 3 0]
indices = find(n==0,2,'last')
n(indices) = []

Ausgabe:

n =

     1     0     2     0     3     0


indices =

     4     6


n =

     1     0     2     3

Wir können im obigen Code sehen, dass die letzten beiden Nullen aus dem Vektor entfernt wurden und die erste Null noch vorhanden ist. Überprüfen Sie diesen Link für weitere Details über die Funktion find().

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - MATLAB Vector