Wie man Matrizen in Octave verkettet
In dieser Anleitung möchte ich Ihnen zeigen, wie Sie in Octave zwei Matrizen horizontal oder vertikal zusammenfügen können.
Was genau bedeutet es, zwei Matrizen zu verkettet? Es handelt sich dabei um eine Operation, die die Zeilen oder Spalten von zwei Matrizen miteinander verbindet und dadurch eine größere Matrix entstehen lässt. Nehmen wir zum Beispiel an, Sie haben zwei Matrizen $$ A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} $$ $$ B = \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} $$ Wenn Sie diese Matrizen horizontal verkettet, fügen Sie die Spalten der zweiten Matrix am Ende der ersten Matrix hinzu, sodass $$ A|B = \begin{pmatrix} 1 & 2 & 5 & 6 \\ 3 & 4 & 7 & 8 \end{pmatrix} $$
Lassen Sie uns das an einem praktischen Beispiel verdeutlichen.
Definieren Sie zunächst eine quadratische Matrix in der Variable A.
A=[1 2;3 4]
Anschließend definieren Sie eine weitere quadratische Matrix in der Variable B.
B=[5 6;7 8]
Um nun die beiden Matrizen horizontal zu verkettet, geben Sie den Befehl [A, B] oder [A B] ein
>> [A B]
ans =
1 2 5 6
3 4 7 8
Octave fügt die Spalten der zweiten Matrix nach der letzten Spalte der ersten Matrix hinzu.
$$ A|B = \begin{pmatrix} 1 & 2 & 5 & 6 \\ 3 & 4 & 7 & 8 \end{pmatrix} $$
Alternativ können Sie auch die Funktion horzcat(A,B) verwenden
>> horzcat(A,B)
ans =
1 2 5 6
3 4 7 8
Oder Sie nutzen die Funktion cat(2,A,B)
>> cat(2,A,B)
ans =
1 2 5 6
3 4 7 8
Das Endergebnis ist in allen Fällen das gleiche.
Sie können zwei Arrays nur dann horizontal verkettet, wenn beide Arrays die gleiche Anzahl von Zeilen haben. Die Anzahl der Spalten kann hingegen variieren.
Um die beiden Matrizen vertikal zu verkettet, geben Sie [A;B] ein
>> [A;B]
ans =
1 2
3 4
5 6
7 8
Das Semikolon entspricht dabei einem Zeilenumbruch.
In diesem Fall fügt Octave die Zeilen der zweiten Matrix nach der letzten Zeile der ersten Matrix hinzu
$$ A|B = \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \\ 7 & 8 \end{pmatrix} $$
Alternativ können Sie das gleiche Ergebnis mit der Funktion vertcat(A,B) erzielen
>> vertcat(A,B)
ans =
1 2
3 4
5 6
7 8
Oder Sie nutzen die Funktion cat(1,A,B)
>> cat(1,A,B)
ans =
1 2
3 4
5 6
7 8
Das Ergebnis ist in allen Fällen identisch.
Sie können zwei Arrays nur dann vertikal verkettet, wenn beide Arrays die gleiche Anzahl von Spalten haben. Die Anzahl der Zeilen kann hingegen variieren.
Auf diese Weise haben Sie die Möglichkeit, in Octave zwei Matrizen sowohl vertikal als auch horizontal zu verkettet.