Supprimer les zéros d'un vecteur dans MATLAB

Ammar Ali 18 aout 2022
Supprimer les zéros d'un vecteur dans MATLAB

Ce tutoriel discutera de la suppression des valeurs nulles d’un vecteur à l’aide de la fonction find() dans MATLAB.

Supprimer les zéros d’un vecteur dans MATLAB

Pour supprimer les zéros d’un vecteur, nous devons trouver les indices ou la position des zéros présents dans un vecteur à l’aide de la fonction find(), qui renverra les indices des zéros. Ensuite, nous pouvons leur attribuer des valeurs vides en utilisant un vecteur vide ou un vecteur nul.

Par défaut, la fonction find() renverra les indices des éléments non nuls, mais nous pouvons mettre des conditions à l’intérieur de la fonction find() pour retourner les indices des zéros. Par exemple, définissons un vecteur contenant des zéros et supprimons-les à l’aide de la fonction find().

Voir le code ci-dessous.

clc
clear

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

Production:

n =

     1     0     2     0     3     0


indices =

     2     4     6


n =

     1     2     3

Nous pouvons voir dans la sortie ci-dessus que la fonction find() a renvoyé les indices, qui indiquent la position de toutes les valeurs nulles présentes dans le vecteur, puis nous avons utilisé les indices pour attribuer un vecteur vide aux zéros.

A l’intérieur de la fonction find(), nous avons défini la condition n==0, ce qui signifie que la fonction va parcourir les valeurs du vecteur une par une. Si une valeur vectorielle est égale à zéro, il renverra son index et passera à la valeur suivante.

Nous pouvons également définir d’autres conditions, comme si nous voulons supprimer ou trouver d’autres valeurs présentes dans le vecteur. Nous pouvons utiliser des opérateurs conditionnels comme inférieur à, égal à, supérieur à, inférieur ou égal à, supérieur ou égal à et différent de définir une condition à l’intérieur de la fonction find().

Si nous ne voulons pas supprimer toutes les valeurs nulles et ne voulons supprimer que quelques valeurs nulles comme les deux premières valeurs, nous pouvons utiliser le deuxième argument de la fonction find(), qui sert à définir le nombre de indices de sortie.

Par exemple, répétons l’exemple ci-dessus et supprimons les deux premiers zéros du vecteur. Voir le code ci-dessous.

clc
clear

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

Production:

n =

     1     0     2     0     3     0


indices =

     2     4


n =

     1     2     3     0

Nous pouvons voir dans la sortie ci-dessus que les deux premiers zéros sont supprimés et que le troisième zéro est toujours présent dans le vecteur donné. Par défaut, la fonction find() lance la recherche de l’élément à partir du début du vecteur.

Néanmoins, nous pouvons également le configurer pour démarrer le processus de recherche à partir du dernier élément du vecteur et se déplacer vers le premier élément en utilisant le troisième argument de la fonction find(), qui est utilisée pour définir la direction. Nous devons passer la chaîne last dans le troisième argument de la fonction find() pour définir sa direction.

Par exemple, répétons l’exemple ci-dessus et supprimons les deux derniers zéros présents dans le vecteur donné. Voir le code ci-dessous.

clc
clear

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

Production:

n =

     1     0     2     0     3     0


indices =

     4     6


n =

     1     0     2     3

Nous pouvons voir dans le code ci-dessus que les deux derniers zéros sont supprimés du vecteur et que le premier zéro est toujours présent. Consultez ce lien pour plus de détails sur la fonction find().

Auteur: 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

Article connexe - MATLAB Vector