Come estrarre tutte le diagonali di una matrice su Matlab e Octave

Per estrarre una diagonale da una matrice su Matlab o Octave utilizzo la funzione diag.

diag(M,k)

Il parametro M è una matrice quadrata mentre k è un numero intero che indica l'ordine della diagonale rispetto alla diagonale principale.

Ad esempio, definisco la matrice quadrata M di tipo 3x3

definisco una matrice quadrata

La diagonale principale della matrice la ottengo semplicemente digitando la funzione diag(M) senza il secondo parametro che di default è k=0.

la diagonale principale della matricew

Le altre diagonali sopra o sotto la diagonale principale indicando il numero intero k come secondo parametro

Dove k=1 è la diagonale sopra la diagonale principale, k=2 quella ancora più sopra.

la diagonale k=1 o k=2

Mentre k=-1 è la diagonale sotto la diagonale principale, k=-2 quella ancora più sotto.

le altre diagonali della matrice

Per estrarre la diagonale secondaria rifletto la matrice in orizzontale con la funzione fliplr() poi estraggo la diagonale.

la diagonale secondaria

Il risultato è la diagonale secondaria, ossia la diagonale che inizia dall'elemento in alto a destra e termina con l'elemento in basso a sinistra.

Anche in questo caso posso estrarre le altre diagonali secondarie sopra la diagonale secondaria indicando come secondo parametro k=1,2, ...

le altre diagonali secondarie

E quelle sotto la diagonale secondaria indicando k=-1,-2, ...

le diagonali sotto la diagonale secondaria

Grazie a questi metodi estraggo tutte le diagonali della matrice.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Le matrici su Matlab/Octave

Altre sulle matrici