Come estrarre tutte le diagonali di una matrice su Octave
In questa lezione ti spiego come estrarre tutte le diagonali di matrice su Octave con un esempio pratico.
Cosa sono le diagonali di una matrice? Sono gli elementi che si trovano sulle diagonali che partono in alto a destra e terminano in basso a sinistra e viceversa. Ad esempio, la diagonale principale di questa matrice è composta dagli elementi 1, 5, 9. $$ M = \begin{pmatrix} \color{red}1 & 2 & 3 \\ 4 & \color{red}5 & 6 \\ 7 & 8 & \color{red}9 \end{pmatrix} $$ La diagonale secondaria è composta dagli elementi 3, 5, 7 $$ M = \begin{pmatrix} 1 & 2 & \color{red}3 \\ 4 & \color{red}5 & 6 \\ \color{red}7 & 8 & 9 \end{pmatrix} $$
Ti faccio un esempio pratico.
Crea una matrice 3x3
>> M=[1 2 3 ; 4 5 6 ; 7 8 9]
M =
1 2 3
4 5 6
7 8 9
Per estrarre tutte le diagonali usa la funzione spdiags()
>> spdiags(M)
ans =
7 4 1 0 0
0 8 5 2 0
0 0 9 6 3
Ogni colonna della matrice in output è una diagonale della matrice M
La colonna centrale è la diagonale principale.
Se vuoi estrarre solo la diagonale principale digita spdiags(M,0)
>> spdiags(M,0)
ans =
1
5
9
Per estrarre la diagonale sopra la diagonale principale digita spdiags(M,1)
>> spdiags(M,1)
ans =
0
2
6
Per estrarre la diagonale sotto la diagonale principale digita spdiags(M,-1)
>> spdiags(M,-1)
ans =
4
8
0
Se vuoi estrarre tutte le diagonali secondarie della matrice M, combina le funzioni spdiags() e fliplr()
La funzione fliplr ribalta la matrice M da sinistra a destra.
Digita spdiags(fliplr(M))
>> spdiags(fliplr(M))
ans =
9 6 3 0 0
0 8 5 2 0
0 0 7 4 1
Ogni colonna della matrice è una diagonale della matrice da sinistra a destra.
La colonna centrale è la diagonale secondaria della matrice.
Se questa lezione di StemKB è utile, continua a seguirci.