MATLAB Diagonal Matrix

Ammar Ali 20 Juni 2021
  1. Erstellen einer Diagonalmatrix mit der Funktion diag() in MATLAB
  2. Erstellen einer Diagonalmatrix mit der Funktion spdiags() in MATLAB
MATLAB Diagonal Matrix

In diesem Tutorial werden wir diskutieren, wie man eine Diagonalmatrix mit den Funktionen diag() und spdiags() in MATLAB erstellt.

Erstellen einer Diagonalmatrix mit der Funktion diag() in MATLAB

Um eine Diagonalmatrix zu erstellen oder die Diagonaleinträge einer Matrix abzurufen, können Sie die Funktion diag() in MATLAB verwenden. Lassen Sie uns zum Beispiel eine Diagonalmatrix aus einem gegebenen Vektor erstellen. Siehe den Code unten.

vector = [1 2 3 4 5];
diagonal = diag(vector)

Ausgabe:

diagonal =

     1     0     0     0     0
     0     2     0     0     0
     0     0     3     0     0
     0     0     0     4     0
     0     0     0     0     5

Im obigen Code haben wir eine 5x5-Diagonalmatrix mit den in der Variablen Vektor gespeicherten Diagonaleinträgen erstellt. Die Funktion diag() erstellt abhängig von der Anzahl der im angegebenen Vektor vorhandenen Elemente eine quadratische Matrix. Wenn die Anzahl der Elemente 5 beträgt, lautet die Diagonalmatrix 5x5. Sie können die Position der Diagonale auch ändern, indem Sie ein zweites Argument in der Funktion diag() verwenden. Wenn das zweite Argument gleich 0 ist, wird der Vektor auf der Hauptdiagonale platziert. Wenn das zweite Argument größer als 0 ist, wird der Vektor über der Hauptdiagonale platziert. Wenn das zweite Argument kleiner als 0 ist, wird der Vektor unterhalb der Hauptdiagonale platziert. Platzieren wir den Vektor beispielsweise über der Hauptdiagonale. Siehe den Code unten.

vector = [1 2 3 4 5];
diagonal = diag(vector,1)

Ausgabe:

diagonal =

     0     1     0     0     0     0
     0     0     2     0     0     0
     0     0     0     3     0     0
     0     0     0     0     4     0
     0     0     0     0     0     5
     0     0     0     0     0     0

Im obigen Code haben wir eine Diagonalmatrix mit den Elementen erstellt, die über der Hauptdiagonale platziert sind. Wie Sie sehen können, beträgt die Größe der Diagonale jetzt 6x6, da der Vektor über der Hauptdiagonale platziert ist. Um sicherzustellen, dass alle Elemente in der Matrix platziert sind, wurde die Größe der Matrix erhöht. Sie können auch die Funktion diag() verwenden, um die diagonalen Einträge aus einer Matrix abzurufen. Lassen Sie uns zum Beispiel die wichtigsten diagonalen Einträge aus einer bestimmten Matrix abrufen. Siehe den Code unten.

vector = [1 2 3;4 5 6;7 8 9]
diagonal = diag(vector)

Ausgabe:

vector =

     1     2     3
     4     5     6
     7     8     9


diagonal =

     1
     5
     9

Im obigen Code haben wir die Funktion diag() verwendet, um die diagonalen Einträge aus der angegebenen Matrix zu finden, und Sie können sehen, dass die Funktion die diagonalen Einträge der angegebenen Matrix zurückgegeben hat. Sie können die diagonalen Einträge auch über und unter der Hauptdiagonale abrufen, indem Sie das zweite Argument in der Funktion diag() verwenden, wie wir es oben verwendet haben, um die Diagonalmatrix mit Elementen über der Hauptdiagonale zu erstellen. Überprüfen Sie diesen Link für weitere Informationen zur Funktion diag().

Erstellen einer Diagonalmatrix mit der Funktion spdiags() in MATLAB

Um eine Diagonalmatrix mit mehr als einer Diagonale zu erstellen oder alle diagonalen Einträge einer Matrix abzurufen, können Sie die Funktion spdiags() in MATLAB verwenden. Das erste Argument, das innerhalb der Funktion spdiags() übergeben wird, sind die Werte, das zweite Argument sind die diagonalen Stellen und das dritte und vierte Argument ist die Größe der diagonalen Matrix. Lassen Sie uns zum Beispiel aus einem gegebenen Vektor eine tridiagonale Matrix erstellen. Siehe den Code unten.

v1 = [1 2 3 4 5].';
v2 = [2 2 2 2 2].';
v3 = [3 3 3 3 3].';
diagonal = spdiags([v2 v1 v3],-1:1,5,5);
matrix = full(diagonal)

Ausgabe:

matrix =

     1     3     0     0     0
     2     2     3     0     0
     0     2     3     3     0
     0     0     2     4     3
     0     0     0     2     5

Im obigen Code haben wir eine tridiagonale Matrix 5x5 mit den diagonalen Einträgen erstellt, die in den drei Variablen v1, v2 und v3 gespeichert sind. Sie können die Diagonalmatrix mit beliebig vielen Werten erstellen. Sie können die Diagonalwerte einer bestimmten Matrix auch mit der Funktion springs() ändern. Übergeben Sie dazu die neuen Werte im ersten Argument, die Stelle der Werte als zweites Argument und die Matrix, deren Werte Sie als drittes Argument ändern möchten. Lassen Sie uns zum Beispiel die diagonalen Haupteinträge der obigen tridiagonalen Matrix ändern. Siehe den Code unten.

v1 = [1 2 3 4 5].';
v2 = [2 2 2 2 2].';
v3 = [3 3 3 3 3].';
diagonal = spdiags([v2 v1 v3],-1:1,5,5);
matrix1 = full(diagonal)

v4 = [9 9 9 9 9].';
diagonal = spdiags(v4,0,diagonal);
matrix2 = full(diagonal)

Ausgabe:

matrix1 =

     1     3     0     0     0
     2     2     3     0     0
     0     2     3     3     0
     0     0     2     4     3
     0     0     0     2     5


matrix2 =

     9     3     0     0     0
     2     9     3     0     0
     0     2     9     3     0
     0     0     2     9     3
     0     0     0     2     9

Im obigen Code haben wir die Werte der Hauptdiagonale von matrix1 geändert. Die Werte werden geändert und die neue Matrix in der Variablen matrix2 gespeichert. Mit der Funktion spdaigs() können Sie auch alle diagonalen Einträge ungleich Null aus einer bestimmten Matrix extrahieren. Lassen Sie uns zum Beispiel die Nicht-Null-Einträge der obigen Matrix extrahieren. Siehe den Code unten.

v1 = [1 2 3 4 5].';
v2 = [2 2 2 2 2].';
v3 = [3 3 3 3 3].';
diagonal = spdiags([v2 v1 v3],-1:1,5,5);
matrix = full(diagonal)

diag_Values = spdiags(matrix)

Ausgabe:

matrix =

     1     3     0     0     0
     2     2     3     0     0
     0     2     3     3     0
     0     0     2     4     3
     0     0     0     2     5


diag_Values =

     2     1     0
     2     2     3
     2     3     3
     2     4     3
     0     5     3

Die Diagonalwerte der angegebenen Matrix werden extrahiert und in der Variablen diag_values gespeichert. Die Diagonalwerte werden in den Spalten der Matrix gespeichert. Die ersten diagonalen Einträge werden in der ersten Spalte usw. gespeichert. Überprüfen Sie diesen Link für weitere Informationen zur Funktion diag().

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 Matrix