Extração de todas as diagonais de uma matriz no Matlab

Neste tutorial, abordaremos como extrair todas as diagonais de uma matriz utilizando o Matlab de forma eficaz.

O que são as diagonais de uma matriz? As diagonais são elementos de uma matriz dispostos de forma diagonal. A título de exemplo, a diagonal principal da matriz a seguir é composta pelos elementos 1, 5, 9, realçados em vermelho. $$ M = \begin{pmatrix} \color{red}1 & 2 & 3 \\ 4 & \color{red}5 & 6 \\ 7 & 8 & \color{red}9 \end{pmatrix} $$ Já a diagonal secundária é formada pelos elementos 3, 5, 7, dispostos em sentido inverso $$ M = \begin{pmatrix} 1 & 2 & \color{red}3 \\ 4 & \color{red}5 & 6 \\ \color{red}7 & 8 & 9 \end{pmatrix} $$

Segue um exemplo prático para ilustrar.

Crie uma matriz quadrada 3x3, com três linhas e três colunas.

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

Utilize o comando spdiags() para extrair todas as diagonais da matriz.

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

Este comando permite extrair todas as diagonais da matriz, incluindo a diagonal principal, organizando-as em colunas.

A coluna central da tabela resultante (destacada em vermelho) corresponde à diagonal principal da matriz.

as diagonais da matriz

As colunas adjacentes à central representam as diagonais acima (verde) e abaixo (azul) da diagonal principal.

Como extrair uma única diagonal?

Caso deseje extrair somente uma diagonal específica da matriz, é necessário especificar também o segundo parâmetro na função spdiags().

Por exemplo, ao digitar spdiags(M,0), extrai-se exclusivamente a diagonal principal da matriz.

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

Na saída da função spdiags(), a diagonal principal da matriz é identificada pelo índice zero (0).

As diagonais imediatamente acima e abaixo da principal possuem, respectivamente, os índices +1 e -1.

os índices das outras diagonais

Para extrair a diagonal acima da principal, por exemplo, utilize spdiags(M,1).

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

Já para obter a diagonal abaixo da principal, use o comando spdiags(M,-1).

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

Para extrair outras diagonais individualmente, utilize índices como -2, +2, entre outros.

os índices das outras diagonais

Extração das Diagonais Secundárias

Para extrair as diagonais secundárias da matriz M, que se estendem da direita para a esquerda, combine a função spdiags() com a fliplr(), que espelha a matriz M da esquerda para a direita.

Digitando spdiags(fliplr(M)), todas as diagonais secundárias da matriz são extraídas.

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

Esta função apresenta as diagonais secundárias da matriz, organizadas em colunas.

Cada coluna representa uma diagonal da matriz, disposta da esquerda para a direita.

As diagonais secundárias da matriz são mostradas no diagrama.

A coluna central (em vermelho) indica a diagonal secundária da matriz.

As colunas adjacentes (azul e verde) representam as diagonais imediatamente abaixo e acima da diagonal secundária.

Nota: Assim como na diagonal principal, a diagonal central possui índice zero (0), enquanto as diagonais adjacentes têm índices -1 e +1, -2 e +2, e assim sucessivamente.
índice da matriz
Portanto, para extrair apenas a diagonal secundária, digite spdiags(fliplr(M),0). Para obter a diagonal acima da secundária, use spdiags(fliplr(M),1), e assim por diante.

 
 

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

FacebookTwitterLinkedinLinkedin

Matrizes no Matlab

FAQ