Cambiar el número de filas y columnas de una matriz en Matlab
En esta lección, te enseñaré cómo cambiar el número de filas y/o columnas de una matriz en Matlab manteniendo inalterado el número total de elementos de la matriz.
Aquí tienes un ejemplo práctico.
Crea una matriz rectangular 3x2 con tres filas y dos columnas.
>> M = [ 1 2 ; 3 4 ; 5 6 ]
M =
1 2
3 4
5 6
Ahora escribe la función reshape(M,2,3) para transformar la matriz en una matriz rectangular 2x3 con dos filas y tres columnas.
>> reshape(M,2,3)
ans =
1 5 4
3 2 6
La matriz objetivo debe tener el mismo número de elementos.
Así, también puedes transformar la matriz inicial en un vector fila escribiendo reshape(M,1,6)
>> reshape(M,1,6)
ans =
1 3 5 2 4 6
o en un vector columna escribiendo reshape(M,6,1)
>> reshape(M,6,1)
ans =
1
3
5
2
4
6
En todos los casos, el número de elementos se mantiene sin cambios.
Nota. De hecho, un vector es una matriz especial con solo una fila (1x6) o una columna (6x1).
También puedes transformar un vector en una matriz.
Por ejemplo, crea un vector compuesto por ocho elementos.
>> v = [ 1 2 3 4 5 6 7 8 ]
v =
1 2 3 4 5 6 7 8
Luego transforma el vector en una matriz 2x4 con dos filas y cuatro columnas escribiendo reshape(v,2,4).
>> reshape(v, 2, 4)
ans =
1 3 5 7
2 4 6 8
La matriz tiene el mismo número de elementos que el vector.
Alternativamente, puedes transformar el vector en una matriz 4x2 escribiendo reshape(v,4,2).
>> reshape(v, 4, 2)
ans =
1 5
2 6
3 7
4 8
De esta manera, puedes convertir cualquier vector en una matriz y viceversa, siempre y cuando el número total de elementos se mantenga igual.
El comando reshape genera un error cuando el número de elementos es diferente.
Por ejemplo, no puedes convertir una matriz 4x2 en una matriz 3x3 porque la primera matriz tiene 8 elementos mientras que la segunda matriz tiene 9 elementos.
En este caso, el comando reshape() devuelve un mensaje de error.
>> reshape(M,3,3)
Error usando reshape
El número de elementos no debe cambiar. Usa [ ] como uno de los tamaños de entrada para calcular automáticamente el tamaño apropiado para esa dimensión