Cómo extraer las diagonales de una matriz en Matlab y Octave
Para extraer las diagonales de una matriz en Matlab y Octave use la función diag()
diag(M, k)
El primer argumento (M) es la matriz.
El segundo argumento (k) es opcional. Es un número entero que indica la diagonal a extraer. Por default es k = 0 y la función extrae la diagonal principal de la matriz.
Nota. Si el primer argumento de la función diag() es un vector, la función crea una matriz diagonal en la que la diagonal principal está formada por los elementos del vector.
Ejemplos
Ejemplo 1
Definir una matriz cuadrada
M=[[1 2 3];[4 5 6];[7 8 9]]
Es una matriz cuadrada de 3x3
$$ \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix} $$
Extraiga la diagonal principal a través de la función diag(M)
diag(M)
La función extrae la diagonal principal de la matriz.
1
5
9
Ejemplo 2
Para extraer la diagonal sobre la diagonal principal, especifique el parámetro k = 1 en la función diag()
diag(M,1)
El resultado de salida es
2
6
Ejemplo 3
Para extraer la diagonal debajo de la principal, use la función diag () con el parámetro k = -1
diag(M,-1)
El resultado de salida es
4
8
Ejemplo 4
Para extraer la diagonal secundaria, voltea la matriz horizontalmente usando la función fliplr () y extrae la diagonal con la función diag().
diag(fliplr(M))
El resultado de salida es la diagonal secundaria de la matriz.
3
5
7
Ejemplo 5
Para extraer todas las diagonales de la matriz con un solo comando, escriba
>> spdiags(M)
La función genera un array.
Cada vector columna en el array es una diagonal de la matriz.
7 4 1 0 0
0 8 5 2 0
0 0 9 6 3
El vector columna 1 5 9 en el centro del array es la diagonal principal de la matriz.
$$ \begin{pmatrix} \color{red}1 & 2 & 3 \\ 4 & \color{red}5 & 6 \\ 7 & 8 & \color{red}9 \end{pmatrix} $$
El vector columna 4 8 0 es la diagonal debajo de la diagonal principal.
$$ \begin{pmatrix} 1 &2 & 3 \\ \color{red}4 & 5 & 6 \\ 7 & \color{red}8 & 9 \end{pmatrix} $$
El vector columna 0 2 6 es la diagonal sobre la diagonal principal.
$$ \begin{pmatrix} 1 & \color{red}2 & 3 \\ 4 & 5 & \color{red}6 \\ 7 & 8 & 9 \end{pmatrix} $$