Extrair uma diagonal de uma matriz no Octave
Nesta lição, vamos explorar como extrair uma diagonal de uma matriz utilizando o Octave.
Primeiramente, o que é a diagonal de uma matriz? São os elementos que se encontram na diagonal principal da matriz. Por exemplo, na matriz abaixo, os elementos 1, 5, 9 compõem a diagonal principal. $$ M = \begin{pmatrix} \color{red}1 & 2 & 3 \\ 4 & \color{red}5 & 6 \\ 7 & 8 & \color{red}9 \end{pmatrix} $$
Vamos a um exemplo prático.
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
ara identificar os elementos na diagonal principal, utilize o comando diag(M)
>> diag(M)
ans =
1
5
9
Os elementos na diagonal principal da matriz são os números 1, 5 e 9.
$$ M = \begin{pmatrix} \color{red}1 & 2 & 3 \\ 4 & \color{red}5 & 6 \\ 7 & 8 & \color{red}9 \end{pmatrix} $$
Para identificar os elementos na diagonal acima da diagonal principal, utilize o comando diag(M,1)
>> diag(M,1)
ans =
2
6
Este comando extrai os números 2 e 6, que estão na diagonal acima da principal.
$$ M = \begin{pmatrix} 1 & \color{red}2 & 3 \\ 4 & 5 & \color{red}6 \\ 7 & 8 & 9 \end{pmatrix} $$
Agora, utilize o comando diag(M,2)
>> diag(M,2)
ans = 3
Desta forma, você obtém os elementos na diagonal ainda mais alta e assim por diante.
$$ M = \begin{pmatrix} 1 & 2 & \color{red}3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix} $$
Para extrair os elementos da diagonal abaixo da diagonal principal, utilize o comando diag(M,-1)
>> diag(M,-1)
ans =
4
8
Este comando extrai os elementos abaixo da diagonal principal.
$$ M = \begin{pmatrix} 1 & 2 & 3 \\ \color{red}4 & 5 & 6 \\ 7 & \color{red}8 & 9 \end{pmatrix} $$
Se você deseja eliminar todos os outros elementos, exceto aqueles na diagonal principal, utilize o comando diag(diag(M))
>> diag(diag(M))
ans =
Diagonal Matrix
1 0 0
0 5 0
0 0 9
Desta forma, você obtém uma matriz diagonal.
$$ M = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 5 & 0 \\ 0 & 0 & 9 \end{pmatrix} $$
Se você deseja extrair a antidiagonal ou diagonal secundária, inverta a matriz utilizando a função fliplr().
Digite diag(fliplr(M))
>> diag(fliplr(M))
ans =
3
5
7
Este comando retorna os elementosna antidiagonal da matriz.
$$ M = \begin{pmatrix} 1 & 2 & \color{red}3 \\ 4 & \color{red}5 & 6 \\ \color{red}7 & 8 & 9 \end{pmatrix} $$
Você também pode usar o comando diag() para extrair os elementos de uma matriz retangular.
Por exemplo, crie uma matriz retangular com 3 linhas e 4 colunas.
>> M2=[1 1 1 1 ; 2 2 2 2 ; 3 3 3 3]
M2 =
1 1 1 1
2 2 2 2
3 3 3 3
Agora, utilize o comando diag(M2)
>> diag(M2)
ans =
1
2
3
Este comando extrai os elementos na diagonal da matriz quadrada dentro da matriz retangular.
$$ M = \begin{pmatrix} \color{red}1 & 1 & 1 & 1 \\ 2 & \color{red}2 & 2 & 2 \\ 3 & 3 & \color{red}3 & 3 \end{pmatrix} $$
Espero que esta lição tenha sido útil para entender como extrair uma diagonal de uma matriz no Octave.
Continue praticando para aprimorar suas habilidades.