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