Entfernung einer Zeile oder Spalte aus einer Matrix in Matlab
In dieser Lektion erkläre ich Ihnen, wie Sie eine Zeile oder eine Spalte aus einer Matrix im Matlab-Umfeld effizient entfernen können.
Sehen wir uns ein praktisches Beispiel an.
Erstellen Sie zunächst eine 3x3-Matrix mit jeweils drei Zeilen und Spalten:
>> M=[1 2 3; 4 5 6; 7 8 9]
M =
1 2 3
4 5 6
7 8 9
Um die erste Zeile zu löschen, geben Sie folgenden Befehl ein: M(1,:)=[ ]
>> M(1,:)=[ ]
M =
4 5 6
7 8 9
Lassen Sie uns diesen Befehl analysieren:
- Die Zahl 1 im ersten Parameter M(1,:) bezieht sich auf die erste Zeile der Matrix.
- Das Doppelpunkt-Symbol (:) im zweiten Parameter M(1,:) repräsentiert alle Spalten.
Demnach löscht der Befehl M(1,:)=[ ] alle Elemente der ersten Zeile, indem er ihnen einen leeren Wert [ ] zuweist.
$$ \begin{pmatrix} \not{1} & \not{2} & \not{3} \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix} $$
Daraufhin wird die erste Zeile der Matrix entfernt.
$$ \begin{pmatrix} 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix} $$
Das Resultat ist eine 2x3-Matrix mit zwei Zeilen und drei Spalten.
Hinweis: Um andere Zeilen zu entfernen, geben Sie einfach eine andere Zeilennummer an. Möchten Sie beispielsweise die zweite Zeile löschen, verwenden Sie M(2,:)=[ ]. Beachten Sie, dass die erste Zeile in Matlab mit 1 indiziert wird, die zweite mit 2 und so weiter.
Erstellen wir nun die 3x3-Matrix erneut.
>> M=[1 2 3; 4 5 6; 7 8 9]
M =
1 2 3
4 5 6
7 8 9
Um die dritte Spalte zu löschen, tippen Sie: M(:,3)=[ ]
>> M(:,3)=[ ]
M =
1 2
4 5
7 8
Dieser Befehl entfernt alle Werte der dritten Spalte durch Zuweisung eines leeren Werts.
$$ \begin{pmatrix} 1 & 2 & \not{3} \\ 4 & 5 & \not{6} \\ 7 & 8 & \not{9} \end{pmatrix} $$
Dadurch wird die dritte Spalte aus der Matrix entfernt.
$$ \begin{pmatrix} 1 & 2 \\ 4 & 5 \\ 7 & 8 \end{pmatrix} $$
Schließlich erhalten wir als Ergebnis eine rechteckige 3x2-Matrix mit drei Zeilen und zwei Spalten.
Wie entfernt man mehrere Zeilen oder Spalten gleichzeitig?
Möchten Sie in Ihrer Matrix mehrere Zeilen oder Spalten auf einmal löschen, so geben Sie die entsprechenden Reihen oder Spalten in eckigen Klammern an.
Erstellen wir beispielsweise eine 4x4 Matrix:
>> M=[1 2 3 4; 5 6 7 8; 9 8 7 6; 5 4 3 2]
M =
1 2 3 4
5 6 7 8
9 8 7 6
5 4 3 2
Um die erste und letzte Zeile zu löschen, nutzen Sie den Befehl M([1 4] ,:)=[ ].
Die Zu löschenden Zeilen sind dabei im ersten Parameter des Befehls in eckigen Klammern, hier [ 1 4 ], anzugeben.
Für die Entfernung der Zeilennummern verwenden Sie:
>> M([1 4] ,:)=[ ]
M =
5 6 7 8
9 8 7 6
Der Befehl M([1 4],:)=[ ] eliminiert die erste und letzte Zeile aus der Matrix.
$$ \begin{pmatrix} \not{1} & \not{2} & \not{3} & \not{4} \\ 5 & 6 & 7 & 8 \\ 9 & 8 & 7 & 6 \\ \not{5} & \not{4} & \not{3} & \not{2} \end{pmatrix} $$
Das Resultat ist eine rechteckige 2x4 Matrix mit zwei Zeilen und vier Spalten.
$$ \begin{pmatrix} 5 & 6 & 7 & 8 \\ 9 & 8 & 7 & 6 \end{pmatrix} $$
Um nun die zweite, dritte und vierte Spalte zu entfernen, geben Sie den Befehl M(:,[2 3 4])=[ ] ein.
Hierbei beinhaltet die Liste der zu entfernenden Spalten [ 2 3 4 ] genau diese drei Spalten.
>> M(:,[2 3 4])=[ ]
M =
5
9
Mit dem Befehl M(:,[2 3 4])=[ ] werden die zweite, dritte und vierte Spalte aus der Matrix entfernt:
$$ \begin{pmatrix} 5 & \not{6} & \not{7} & \not{8} \\ 9 & \not{8} & \not{7} & \not{6} \end{pmatrix} $$
Das Ergebnis ist eine 2x1 Matrix, also ein Spaltenvektor.
$$ \begin{pmatrix} 5 \\ 9 \end{pmatrix} $$
Bevor wir abschließen, hier noch ein praktischer Hinweis:
Wenn die zu entfernenden Zeilen oder Spalten aufeinanderfolgend sind, können Sie das Intervall zwischen erster und letzter Zeile bzw. Spalte angeben, indem Sie einen Doppelpunkt (:) als Trennzeichen verwenden, anstelle alle einzeln aufzulisten.
Um beispielsweise die zweite, dritte und vierte Spalte zu entfernen, können Sie auch M(:,[2:4])=[ ] eingeben.
Hierbei wird das Intervall zwischen den Spalten [2:4] anstatt der Auflistung [2 3 4] verwendet.
>> M(:,[2:4])=[ ]
M =
5
9
Das Endergebnis bleibt unverändert.
So lassen sich beliebige Zeilen oder Spalten einer Matrix in Matlab effizient entfernen.