Como alterar o número de linhas e colunas de uma matriz no Octave

Nesta explanação, vamos abordar como modificar o número de linhas e colunas de uma matriz no Octave, mantendo inalterado o número total de elementos.

Para ilustrar, vamos considerar um exemplo prático.

Inicialmente, criamos uma matriz retangular 3x2, composta por três linhas e duas colunas.

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

Em seguida, vamos transformar a matriz 3x2 em uma matriz 2x3, que possui duas linhas e três colunas.

Para isso, basta digitar reshape(M,2,3)

>> reshape(M,2,3)
ans =
1 5 4
3 2 6

É possível também converter a matriz inicial em um vetor linha, utilizando o comando reshape(M,1,6)

>> reshape(M,1,6)
ans =
1 3 5 2 4 6

Ou, se preferir, em um vetor coluna, através do comando reshape(M,6,1)

>> reshape(M,6,1)
ans =
1
3
5
2
4
6

Em todas essas operações, o número de elementos permanece constante.

Vale ressaltar que um vetor é uma matriz específica com uma única linha 1x6 ou uma única coluna 6x1.

De maneira análoga, é possível transformar um vetor em uma matriz.

Por exemplo, vamos criar um vetor com oito elementos

>> v = [ 1 2 3 4 5 6 7 8 ]
v =
1 2 3 4 5 6 7 8

Podemos transformar este vetor em uma matriz 2x4, que possui duas linhas e quatro colunas, digitando reshape(v,2,4)

>> reshape(v, 2, 4)
ans =
1 3 5 7
2 4 6 8

Alternativamente, o vetor pode ser convertido em uma matriz 4x2, utilizando o comando reshape(v, 4, 2)

>> reshape(v, 4, 2)
ans =
1 5
2 6
3 7
4 8

Dessa forma, é possível converter um vetor em uma matriz e vice-versa, desde que o número de elementos seja mantido.

No entanto, se o número de elementos for diferente, o comando reshape() não será bem-sucedido.

Por exemplo, não é possível transformar uma matriz 4x2 em uma matriz 3x3, pois a primeira matriz contém oito elementos, enquanto a segunda possui nove.

Neste caso, o comando reshape() resultará em erro.

>> reshape(M,3,3)
error: reshape: can't reshape 3x2 array to 3x3 array

 
 

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

FacebookTwitterLinkedinLinkedin

Arrays em Octave

Matrizes em Octave

FAQ

Struct e array de células