Eine Diagonale aus einer Matrix in Octave extrahieren
In dieser Lektion möchte ich Ihnen zeigen, wie Sie eine Diagonale aus einer Matrix in Octave extrahieren können.
Zunächst einmal, was ist die Diagonale einer Matrix? Es handelt sich dabei um die Elemente, die auf der Hauptdiagonale der Matrix liegen. Nehmen wir zum Beispiel diese Matrix: Die Hauptdiagonale besteht aus den Elementen 1, 5, 9. $$ M = \begin{pmatrix} \color{red}1 & 2 & 3 \\ 4 & \color{red}5 & 6 \\ 7 & 8 & \color{red}9 \end{pmatrix} $$
Lassen Sie uns das an einem praktischen Beispiel verdeutlichen.
Erstellen Sie eine 3x3 Quadratmatrix mit drei Zeilen und drei Spalten.
>> M=[1 2 3; 4 5 6; 7 8 9]
M =
1 2 3
4 5 6
7 8 9
Um die Anzahl der Elemente in der Hauptdiagonale zu ermitteln, geben Sie diag(M) ein
>> diag(M)
ans =
1
5
9
Die Elemente in der Hauptdiagonale der Matrix sind also die Zahlen 1, 5 und 9.
$$ M = \begin{pmatrix} \color{red}1 & 2 & 3 \\ 4 & \color{red}5 & 6 \\ 7 & 8 & \color{red}9 \end{pmatrix} $$
Um die Elemente auf der Diagonale über der Hauptdiagonale zu ermitteln, geben Sie diag(M,1) ein
>> diag(M,1)
ans =
2
6
Mit diesem Befehl extrahieren Sie die Zahlen 2 und 6, die auf der Diagonale über der Hauptdiagonalen liegen.
$$ M = \begin{pmatrix} 1 & \color{red}2 & 3 \\ 4 & 5 & \color{red}6 \\ 7 & 8 & 9 \end{pmatrix} $$
Geben Sie nun diag(M,2) ein
>> diag(M,2)
ans = 3
Auf diese Weise erhalten Sie die Elemente auf der noch höheren Diagonale und so weiter.
$$ M = \begin{pmatrix} 1 & 2 & \color{red}3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix} $$
Um die Elemente der Diagonale unter der Hauptdiagonale zu extrahieren, geben Sie diag(M,-1) ein
>> diag(M,-1)
ans =
4
8
Mit diesem Befehl extrahieren Sie die Elemente unter der Hauptdiagonalen.
$$ M = \begin{pmatrix} 1 & 2 & 3 \\ \color{red}4 & 5 & 6 \\ 7 & \color{red}8 & 9 \end{pmatrix} $$
Wenn Sie alle anderen Elemente löschen möchten, außer denen auf der Hauptdiagonalen, geben Sie diag(diag(M)) ein
>> diag(diag(M))
ans =
Diagonal Matrix
1 0 0
0 5 0
0 0 9
Auf diese Weise erhalten Sie eine Diagonalmatrix.
$$ M = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 5 & 0 \\ 0 & 0 & 9 \end{pmatrix} $$
Wenn Sie die Antidiagonale oder sekundäre Diagonale extrahieren möchten, drehen Sie die Matrix mit der Funktion fliplr()
Geben Sie diag(fliplr(M)) ein
>> diag(fliplr(M))
ans =
3
5
7
Mit diesem Befehl erhalten Sie die Elemente auf der Antidiagonalen der Matrix
$$ M = \begin{pmatrix} 1 & 2 & \color{red}3 \\ 4 & \color{red}5 & 6 \\ \color{red}7 & 8 & 9 \end{pmatrix} $$
Sie können auch den Befehl diag() verwenden, um die Elemente eines rechteckigen Arrays zu extrahieren.
Erstellen Sie zum Beispiel eine rechteckige Matrix mit 3 Zeilen und 4 Spalten.
>> M2=[1 1 1 1 ; 2 2 2 2 ; 3 3 3 3]
M2 =
1 1 1 1
2 2 2 2
3 3 3 3
Geben Sie nun diag(M2) ein
>> diag(M2)
ans =
1
2
3
Mit diesem Befehl extrahieren Sie die Elemente auf der Diagonalen der Quadratmatrix in die rechteckige Matrix.
$$ M = \begin{pmatrix} \color{red}1 & 1 & 1 & 1 \\ 2 & \color{red}2 & 2 & 2 \\ 3 & 3 & \color{red}3 & 3 \end{pmatrix} $$