Extracci贸n de todas las diagonales de una matriz en Octave

En el siguiente tutorial, se describe la forma de extraer todas las diagonales de una matriz en Octave, acompañado de un ejemplo de aplicación.

Las diagonales de una matriz, ¿a qué nos referimos con esto? Pues son los elementos dispuestos en líneas diagonales que inician en la parte superior derecha y concluyen en la parte inferior izquierda, o de manera inversa. Un ejemplo clásico: la diagonal principal de la matriz siguiente se conforma por los elementos 1, 5, 9.$$ M = \begin{pmatrix} \color{red}1 & 2 & 3 \\ 4 & \color{red}5 & 6 \\ 7 & 8 & \color{red}9 \end{pmatrix} $$ En contraste, la diagonal secundaria se compone por los elementos 3, 5, 7 $$ M = \begin{pmatrix} 1 & 2 & \color{red}3 \\ 4 & \color{red}5 & 6 \\ \color{red}7 & 8 & 9 \end{pmatrix} $$

Ahora, vamos a describir un ejemplo práctico.

Generemos una matriz de 3x3.

>> M=[1 2 3 ; 4 5 6 ; 7 8 9]
M =
1 2 3
4 5 6
7 8 9

Para la extracción de todas las diagonales, utilizamos el comando spdiags()

>> spdiags(M)
ans =
7 4 1 0 0
0 8 5 2 0
0 0 9 6 3

Cada columna en la matriz resultante representa una diagonal de la matriz M.

La columna central, marcada en rojo, es la diagonal principal, compuesta por los números 1, 5, 9.

todas las diagonales de la matriz

En caso de querer extraer exclusivamente la diagonal principal, se escribe spdiags(M,0)

>> spdiags(M,0)
ans =
1
5
9

Si se pretende extraer la diagonal superior a la principal, se teclea spdiags(M,1)

>> spdiags(M,1)
ans =
0
2
6

Si lo que se busca es extraer la diagonal inferior a la principal, el comando es spdiags(M,-1)

>> spdiags(M,-1)
ans =
4
8
0

Para obtener todas las diagonales secundarias de la matriz M, se combina el uso de spdiags() y fliplr()

La función fliplr efectúa una inversión de la matriz M, de izquierda a derecha.

El comando a introducir es spdiags(fliplr(M))

>> spdiags(fliplr(M))
ans =
9 6 3 0 0
0 8 5 2 0
0 0 7 4 1

Cada columna en la matriz corresponde a una diagonal de la matriz, de izquierda a derecha.

La columna central, en rojo, es la diagonal secundaria, compuesta por los números 3, 5, 7.

todas las diagonales secundarias de la matriz

De esta manera, se posibilita la extracción de cualquier diagonal de la matriz.

 
 

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

FacebookTwitterLinkedinLinkedin

Arreglos en Octave

Matrices en Octave

Preguntas frecuentes

Struct y array de celdas