lettura facile

Come sostituire le diagonali di una matrice su Octave

In questa lezione ti spiego come sostituire gli elementi in una diagonale della matrice

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 della matrice M è 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} $$

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

La diagonale principale è 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} $$

Per sostituire gli elementi della diagonale principale con -1, -2, -3 digita spdiags([-1;-5;-9],0,M)

>> spdiags([-1;-5;-9],0,M)
ans =
-1 2 3
4 -5 6
7 8 -9

  • Il primo parametro è un vettore colonna [-1;-5;-9] con i nuovi elementi della diagonale.
  • Il secondo parametro (0) è l'indice della diagonale. La diagonale principale ha indice 0.

    Nota. L'indice 1 è la diagonale sopra la diagonale principale mentre l'indice -1 è la diagonale sotto.

  • Il terzo parametro M è la variabile dove è memorizzata la matrice.

Il risultato in output è una matrice quadrata con i nuovi elementi sulla diagonale principale.

$$ M = \begin{pmatrix} \color{red}{-1} & 2 & 3 \\ 4 & \color{red}{-5} & 6 \\ 7 & 8 & \color{red}{-9} \end{pmatrix} $$

Per modificare gli elementi sulla diagonale sopra la diagonale principale digita spdiags([-1;-5;-9],1,M)

>> spdiags([-1;-5;-9],1,M)
ans =
1 -5 3
4 5 -9
7 8 9

La funzione sostituisce gli elementi sopra la diagonale principale.

$$ M = \begin{pmatrix} 1 & \color{red}{-5} & 3 \\ 4 & 5 & \color{red}{-9} \\ 7 & 8 & 9 \end{pmatrix} $$

Nota. Il primo elemento -1 del vettore colonna [-1;-5;-9] non appare nella nuova matrice perché, in questo caso, si trova al di fuori della matrice.
perché -1 non si vede nella matrice?

Per sostituire gli elementi sulla diagonale secondaria combina le funzioni spdiags() e fliplr()

>> fliplr(spdiags([-1;-5;-9],0,fliplr(M)))
ans =
1 2 -1
4 -5 6
-9 8 9

La funzione sostituisce i valori sulla diagonale secondaria della matrice.

La diagonale secondaria parte in alto a destra e termina in basso a sinistra.

$$ M = \begin{pmatrix} 1 & 2 & \color{red}{-1} \\ 4 & \color{red}{-5} & 6 \\ \color{red}{-9} & 8 & 9 \end{pmatrix} $$

In questo modo puoi sostituire tutti i valori anche sulle diagonali secondarie della matrice.

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

 




Non hai risolto il tuo problema? Scrivi una domanda




FacebookTwitterLinkedinLinkedin