Alterar o número de linhas e colunas de uma matriz no Matlab

Nesta aula, vou demonstrar como alterar o número de linhas e/ou colunas de uma matriz no Matlab, mantendo inalterado o total de elementos da matriz.

Aqui está um exemplo prático.

Crie uma matriz retangular 3x2 com três linhas e duas colunas.

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

Agora digite a função reshape(M,2,3) para transformar a matriz em uma matriz retangular 2x3 com duas linhas e três colunas.

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

A matriz alvo deve ter o mesmo número de elementos.

Assim, você também pode transformar a matriz inicial em um vetor linha digitando reshape(M,1,6)

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

ou em um vetor coluna digitando reshape(M,6,1)

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

Em todos os casos, o número de elementos permanece o mesmo.

Nota. De fato, um vetor é uma matriz especial com apenas uma linha (1x6) ou uma coluna (6x1).

Você também pode transformar um vetor em uma matriz.

Por exemplo, crie um vetor composto por oito elementos.

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

Então transforme o vetor em uma matriz 2x4 com duas linhas e quatro colunas digitando reshape(v,2,4).

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

A matriz tem o mesmo número de elementos que o vetor.

Alternativamente, você pode transformar o vetor em uma matriz 4x2 digitando reshape(v,4,2).

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

Dessa forma, você pode converter qualquer vetor em uma matriz e vice-versa, desde que o número total de elementos permaneça o mesmo.

O comando reshape gera um erro quando o número de elementos é diferente.

Por exemplo, você não pode converter uma matriz 4x2 em uma matriz 3x3 porque a primeira matriz tem 8 elementos enquanto a segunda tem 9 elementos.

Neste caso, o comando reshape() retorna uma mensagem de erro.

>> reshape(M,3,3)
Erro usando reshape
Número de elementos não deve mudar. Use [ ] como uma das entradas de tamanho para calcular automaticamente o tamanho apropriado para essa dimensão

 
 

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

FacebookTwitterLinkedinLinkedin

Matrizes no Matlab

FAQ