Eliminación de filas o columnas en matrices con Matlab
En esta clase, te mostraré cómo puedes eliminar una fila o columna específica de una matriz utilizando Matlab.
A continuación, un ejemplo práctico para ilustrarlo.
Primero, creamos una matriz de 3x3, con tres filas y tres columnas:
>> M=[1 2 3; 4 5 6; 7 8 9]
ans =
1 2 3
4 5 6
7 8 9
Para eliminar la primera fila, utilizamos la instrucción M(1,:)=[ ]:
>> M(1,:)=[ ]
ans =
4 5 6
7 8 9
Expliquemos este comando:
- El '1' en M(1,:) indica que estamos seleccionando la primera fila de la matriz.
- El símbolo de dos puntos (:) en M(1,:) representa la selección de todas las columnas en esa fila.
Así, M(1,:)=[ ] reemplaza el contenido de toda la primera fila con un valor nulo [ ], resultando en su eliminación.
$$ \begin{pmatrix} \not{1} & \not{2} & \not{3} \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix} $$
Con esto, la primera fila de la matriz se elimina por completo.
$$ \begin{pmatrix} 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix} $$
El resultado es una matriz de 2x3, con dos filas y tres columnas.
Nota: Para eliminar otras filas, basta con cambiar el número de la fila. Por ejemplo, para quitar la segunda fila, usaríamos M(2,:)=[ ]. Cada fila se identifica por su número, comenzando por 1 para la primera fila, 2 para la segunda, y así sucesivamente.
Recreemos la matriz 3x3:
>> M=[1 2 3; 4 5 6; 7 8 9]
ans =
1 2 3
4 5 6
7 8 9
Para eliminar la tercera columna, usamos M(:,3)=[ ]:
>> M(:,3)=[ ]
ans =
1 2
4 5
7 8
Este comando selecciona todas las filas (:) de la tercera columna y les asigna un valor nulo.
$$ \begin{pmatrix} 1 & 2 & \not{3} \\ 4 & 5 & \not{6} \\ 7 & 8 & \not{9} \end{pmatrix} $$
De esta manera, se elimina la tercera columna de la matriz.
$$ \begin{pmatrix} 1 & 2 \\ 4 & 5 \\ 7 & 8 \end{pmatrix} $$
El resultado es una matriz rectangular de 3x2, con tres filas y dos columnas.
¿Cómo eliminar varias filas o columnas al mismo tiempo?
Si deseas eliminar múltiples filas o columnas en la matriz, debes indicar la lista de columnas o filas que quieres quitar entre corchetes.
Por ejemplo, crea una matriz de 4x4:
>> M=[1 2 3 4; 5 6 7 8; 9 8 7 6; 5 4 3 2]
M =
1 2 3 4
5 6 7 8
9 8 7 6
5 4 3 2
Para eliminar la primera y última fila, escribe el comando M([1 4] ,:)=[ ]
La lista de filas a eliminar debe escribirse entre corchetes [ 1 4 ] en el primer parámetro del comando.
Separa los números de fila de
>> M([1 4] ,:)=[ ]
M =
5 6 7 8
9 8 7 6
El comando M([1 4],:)=[ ] elimina la primera y tercera fila de la matriz.
$$ \begin{pmatrix} \not{1} & \not{2} & \not{3} & \not{4} \\ 5 & 6 & 7 & 8 \\ 9 & 8 & 7 & 6 \\ \not{5} & \not{4} & \not{3} & \not{2} \end{pmatrix} $$
El resultado es una matriz rectangular de 2x4 con dos filas y cuatro columnas.
$$ \begin{pmatrix} 5 & 6 & 7 & 8 \\ 9 & 8 & 7 & 6 \end{pmatrix} $$
Ahora, para eliminar la segunda, tercera y cuarta columna, escribe el comando M(:,[2 3 4])=[ ]
En este caso, la lista de columnas a eliminar [ 2 3 4 ] consta de tres columnas.
>> M(:,[2 3 4])=[ ]
M =
5
9
El comando M(:,[2 3 4])=[ ] elimina la segunda, tercera y cuarta columna de la matriz:
$$ \begin{pmatrix} 5 & \not{6} & \not{7} & \not{6} \\ 9 & \not{8} & \not{7} & \not{6} \end{pmatrix} $$
El resultado es una matriz de 2x1, o un vector columna.
$$ \begin{pmatrix} 5 \\ 6 \end{pmatrix} $$
Antes de finalizar, te dejo un último consejo práctico.
Cuando las filas o columnas son consecutivas, también puedes indicar el intervalo entre la primera y última insertando dos puntos (:) como separador, en lugar de listarlas todas en una lista.
Por ejemplo, para eliminar la segunda, tercera y cuarta columna, también puedes escribir M(:,[2:4])=[ ]
En este caso, estás indicando el intervalo entre las columnas [2:4] en lugar de la lista [2 3 4].
>> M(:,[2:4])=[ ]
M =
5
9
El resultado final sigue siendo el mismo.
De esta manera, puedes eliminar cualquier fila o columna de una matriz cuando usas Matlab.