Eliminar ceros de un vector en MATLAB

Ammar Ali 18 agosto 2022
Eliminar ceros de un vector en MATLAB

Este tutorial analizará la eliminación de valores cero de un vector utilizando la función find() en MATLAB.

Eliminar ceros de un vector en MATLAB

Para eliminar ceros de un vector, necesitamos encontrar los índices o la posición de los ceros presentes en un vector usando la función find(), que devolverá los índices de ceros. Luego podemos asignarles valores vacíos usando un vector vacío o un vector nulo.

Por defecto, la función find() devolverá los índices de elementos distintos de cero, pero podemos poner condiciones dentro de la función find() para devolver los índices de ceros. Por ejemplo, definamos un vector que contenga algunos ceros y eliminémoslos usando la función find().

Vea el código a continuación.

clc
clear

n = [1 0 2 0 3 0]
indices = find(n==0)
n(indices) = []

Producción :

n =

     1     0     2     0     3     0


indices =

     2     4     6


n =

     1     2     3

Podemos ver en el resultado anterior que la función find() devolvió los índices, lo que indica la posición de todos los valores cero presentes en el vector, y luego usamos los índices para asignar un vector vacío a ceros.

Dentro de la función find(), definimos la condición n==0, lo que significa que la función recorrerá los valores del vector uno por uno. Si el valor de un vector es igual a cero, devolverá su índice y pasará al siguiente valor.

También podemos definir otras condiciones, como si queremos eliminar o encontrar otros valores presentes en el vector. Podemos usar operadores condicionales como menor que, igual a, mayor que, menor o igual a, mayor o igual a, y no igual para definir una condición dentro de la función find().

Si no queremos eliminar todos los valores cero y solo queremos eliminar algunos valores cero como los dos primeros valores, podemos usar el segundo argumento de la función find(), que se usa para establecer el número de índices de salida.

Por ejemplo, repitamos el ejemplo anterior y eliminemos los dos primeros ceros del vector. Vea el código a continuación.

clc
clear

n = [1 0 2 0 3 0]
indices = find(n==0,2)
n(indices) = []

Producción :

n =

     1     0     2     0     3     0


indices =

     2     4


n =

     1     2     3     0

Podemos ver en el resultado anterior que los primeros dos ceros se eliminan y el tercer cero todavía está presente en el vector dado. Por defecto, la función find() comienza a buscar el elemento desde el inicio del vector.

Aún así, también podemos configurarlo para que comience el proceso de búsqueda desde el último elemento del vector y avance hacia el primer elemento utilizando el tercer argumento de la función find(), que se utiliza para establecer la dirección. Debemos pasar la cadena last en el tercer argumento de la función find() para establecer su dirección.

Por ejemplo, repitamos el ejemplo anterior y eliminemos los dos últimos ceros presentes en el vector dado. Vea el código a continuación.

clc
clear

n = [1 0 2 0 3 0]
indices = find(n==0,2,'last')
n(indices) = []

Producción :

n =

     1     0     2     0     3     0


indices =

     4     6


n =

     1     0     2     3

Podemos ver en el código anterior que los dos últimos ceros se eliminan del vector y el primer cero todavía está presente. Consulte este enlace para obtener más detalles sobre la función find().

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - MATLAB Vector