lettura facile

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.

le diagonali della matrice

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.

le diagonali secondarie della matrice

Se questa lezione di StemKB è utile, continua a seguirci.




Non hai risolto il tuo problema? Scrivi una domanda




FacebookTwitterLinkedinLinkedin