Eliminar elementos en matrices de Matlab

Publicado el 13 enero 2021 por Daniel Rodríguez @analyticslane

Para eliminar un elemento en una matriz de Matlab solamente hay que seleccionar estos y asignar una matriz vacía. Matriz que se indica con dos corchetes ([]). Por lo que es clave saber previamente seleccionar los elementos de una forma eficiente. A continuación, vamos a ver cómo seleccionar y eliminar los elementos en matrices de Matlab.

Creación de una matriz

En primer lugar hay que tener un matriz en Matlab, por lo que lo mejor es crear una aleatoria con la función randi(). Aunque, de cara a poder reproducir los resultados, es aconsejable fijar la semilla antes de generar la matriz.

rng('default');
data = randi(50 ,6, 4)
data =

    41    14    48    40
    46    28    25    48
     7    48    41    33
    46    49     8     2
    32     8    22    43
     5    49    46    47

Seleccionar filas y columnas

La selección de los elementos de una matriz en Matlab es una tarea realmente sencilla. Proceso que ya se explicó en más detalle en una entrada anterior. Solamente se debe indicar entre paréntesis las coordenadas de matriz, recordando que el valor de la primera posición es 1. Así para seleccionar el segundo elemento de la tercera columna solamente hay que escribir data(2,3), lo que nos debería devolver 25.

En el caso de querer seleccionar un vector con una fila o una columna, se puede indicar mediante dos puntos : que se seleccionen todas las filas o todas la columnas. Así para seleccionar la primera columna se puede hacer data(1,:) y la primera fila data(1, :).

Eliminar filas en una matriz de Matlab

Ahora que sabemos cómo seleccionar filas y columnas podemos eliminarlas de la matriz. Así para eliminar la segunda fila solamente se tiene asignar la matriz vacía a esta.

data(2, :) = []
data =

    41    14    48    40
     7    48    41    33
    46    49     8     2
    32     8    22    43
     5    49    46    47

En este caso los valores de la segunda fila se han perdido, ya que la matriz original ha sido modificada. Si los valores son necesarios para algo es necesario extraerlos previamente y guardarlos en otra variable.

Eliminar columnas en una matriz de Matlab

El proceso para eliminar columnas es análogo al anterior, solamente se tiene que seleccionar esta y asignar una matriz vacía. Así para eliminar la segunda columna solamente se tiene que hacer los siguiente

data(:, 2) = []
data =

    41    48    40
     7    41    33
    46     8     2
    32    22    43
     5    46    47

Eliminar más de una fila o columna

Como se ha visto en la entrada dedicada a la selección de elementos en una matriz de Matlab es posible seleccionar más de una fila o columna. Por lo que también es posible eliminar el mismo paso más de una fila o columna. Esto se hace indicando las filas o las columnas como un vector. De este modo se puede eliminar las filas 1 y 3 de la siguiente manera.

data([1, 3], :) = []
data =

     7    41    33
    32    22    43
     5    46    47

Eliminar un único elemento

Quizás alguien haya notado que se ha explicado previamente como eliminar un único elemento de la matriz. No se ha hecho porque no es posible. Si se eliminase un inicio elemento tendríamos filas o columnas con diferentes numero de elementos, lo que no es posible. En estos casos lo único que se puede hacer es asignar un valor NaN a ese elemento. Aunque en este caso lo único que se hace es eliminar el valor.

Conclusiones

En esta ocasión se ha visto cómo eliminar elementos en matrices de Matlab. Un proceso que es relativamente sencillo si sabemos seleccionar las filas o columnas. Ya que solamente hay que asignar una matriz vacía a los elementos que se desean eliminar.

Imagen de Hans Braxmeier en Pixabay