La diagonale di una matrice su Octave
In questa lezione ti spiego come estrarre la diagonale di una matrice su Octave.
Cos'è la diagonale di una matrice? Sono gli elementi che si trovano sulla diagonale principale della matrice .Ad esempio, la diagonale di questa matrice sono gli elementi 1, 5, 9. $$ M = \begin{pmatrix} \color{red}1 & 2 & 3 \\ 4 & \color{red}5 & 6 \\ 7 & 8 & \color{red}9 \end{pmatrix} $$
Ti faccio un esempio pratico.
Crea una matrice quadrata 3x3 con tre righe e tre colonne.
>> M=[1 2 3; 4 5 6; 7 8 9]
M =
1 2 3
4 5 6
7 8 9
Se vuoi conoscere solo gli elementi sulla diagonale principale usa il comando diag(M)
>> diag(M)
ans =
1
5
9
Gli elementi sulla diagonale principale della matrice sono i numeri 1, 5 e 9
$$ M = \begin{pmatrix} \color{red}1 & 2 & 3 \\ 4 & \color{red}5 & 6 \\ 7 & 8 & \color{red}9 \end{pmatrix} $$
Per conoscere gli elementi sulla diagonale sopra la diagonale principale digita diag(M,1)
>> diag(M,1)
ans =
2
6
Il comando diag(M,1) estrae i numeri 2 e 6 che si trovano sulla diagonale sopra quella principale.
$$ M = \begin{pmatrix} 1 & \color{red}2 & 3 \\ 4 & 5 & \color{red}6 \\ 7 & 8 & 9 \end{pmatrix} $$
Ora digita il comando diag(M,2)
>> diag(M,2)
ans = 3
In questo modo ottieni gli elementi sulla diagonale ancora superiore e via dicendo.
$$ M = \begin{pmatrix} 1 & 2 & \color{red}3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix} $$
Per estrarre gli elementi della diagonale sotto la diagonale principale digita diag(M,-1)
>> diag(M,-1)
ans =
4
8
Il comando diag(M,-1) estrae gli elementi sotto la diagonale principale.
$$ M = \begin{pmatrix} 1 & 2 & 3 \\ \color{red}4 & 5 & 6 \\ 7 & \color{red}8 & 9 \end{pmatrix} $$
Se vuoi cancellare tutti gli altri elementi, lasciando solo quelli sulla diagonale principale, digita diag(diag(M))
>> diag(diag(M))
ans =
Diagonal Matrix
1 0 0
0 5 0
0 0 9
In questo modo ottieni una matrice diagonale.
$$ M = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 5 & 0 \\ 0 & 0 & 9 \end{pmatrix} $$
Se invece vuoi estrarre l'antidiagonale o diagonale secondaria devi prima ribaltare la matrice con la funzione fliplr()
Digita il comando diag(fliplr(M))
>> diag(fliplr(M))
ans =
3
5
7
Il comando diag(fliplr(M)) restituisce gli elementi sulla diagonale secondaria della matrice
$$ M = \begin{pmatrix} 1 & 2 & \color{red}3 \\ 4 & \color{red}5 & 6 \\ \color{red}7 & 8 & 9 \end{pmatrix} $$
Puoi usare il comando diag() anche per estrarre gli elementi di una matrice rettangolare.
Ad esempio, crea una matrice rettangolare con 3 righe e 4 colonne.
>> 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
Ora digita il comando diag(M2)
>> diag(M2)
ans =
1
2
3
Il comando diag(M2) estrae gli elementi sulla diagonale della matrice quadrata contenuta nella matrice rettangolare.
$$ M = \begin{pmatrix} \color{red}1 & 1 & 1 & 1 \\ 2 & \color{red}2 & 2 & 2 \\ 3 & 3 & \color{red}3 & 3 \end{pmatrix} $$
Se questa lezione di StemKB è utile, continua a seguirci.