Rechercher une valeur dans un tableau
Dans ce guide, je vais vous expliquer comment rechercher une valeur dans un tableau MATLAB en utilisant la fonction find().
find(X,N,D)
Cette fonction dispose de trois paramètres :
- X
Le paramètre X est un tableau et est un paramètre obligatoire. - N
Le paramètre N est un entier qui indique le nombre maximum d'éléments à trouver. La recherche s'arrête lorsque ce nombre est atteint. - D
Le paramètre D indique la direction de la recherche. Elle peut être "premier" pour commencer la recherche à partir du premier élément de l'indice, ou "dernier" pour la démarrer depuis le dernier élément.
La fonction retourne les indices des éléments dans le tableau qui satisfont la recherche.
Note. Les indices des tableaux sont toujours triés par ordre croissant, même lorsque la recherche commence par le dernier élément.
Voici un exemple pratique.
Créez un tableau unidimensionnel.
>> V = [ 1 0 2 0 4 0 4 ]
V =
1 0 2 0 4 0 4
Ce tableau comporte sept éléments.
Dans MATLAB, l'indice des éléments dans un tableau commence à un.

Entrez find(V) pour trouver les éléments non nuls.
>> find(V)
ans =
1 3 5 7
La fonction retourne les positions où se trouvent les éléments non nuls, c'est-à-dire V[1], V[3], V[5] et V[7].

Note. Cela s'applique également si le tableau est disposé en lignes au lieu de colonnes. La fonction find() retourne les positions dans l'index.

Pour trouver seulement le premier élément qui satisfait la condition, entrez 1 comme second paramètre.
Entrez find(V,1)
>> find(V,1)
ans = 1
La fonction retourne l'indice du premier élément non nul dans le tableau, c'est-à-dire V[1].

Pour rechercher des éléments en commençant par le dernier, indiquez "dernier" comme troisième paramètre.
Entrez find(V,1,"dernier")
>> find(V,1,"dernier")
ans = 7
Dans ce cas, la direction de la recherche est de droite à gauche.
Le premier élément qui satisfait la condition est V[7].

Pour rechercher des éléments égaux à zéro, mettez une négation devant le nom du tableau.
Entrez find(~V)
>> find(~V)
ans =
2 4 6
La fonction retourne les positions où les éléments du tableau sont égaux à zéro, c'est-à-dire V[2], V[4] et V[6].

Pour identifier uniquement les éléments du tableau supérieurs à deux, entrez find(V>2)
>> find(V>2)
ans =
5 7
La fonction retourne les éléments V[5] et V[7] du tableau.

Si la recherche ne sélectionne aucun élément dans le tableau, le résultat est un ensemble vide.
Par exemple, entrez find(V>5) pour rechercher des éléments supérieurs à 5.
Le résultat est un tableau vide car la valeur la plus élevée dans le tableau est 4.
>> find(V>5)
ans =
1×0 empty double row vector
Pour rechercher des éléments dans le tableau avec des valeurs comprises entre 1 et 3, entrez find(V<=3 & V>=1)
>> find(V<=3 & V>=1)
ans =
1 3
Les éléments qui satisfont la condition sont V[1] et V[3].

Et pour les tableaux multidimensionnels ?
Lorsque vous travaillez avec des tableaux multidimensionnels, tels que des matrices, la fonction find parcourt les colonnes une par une, en commençant par la première colonne.
Par exemple, créons une matrice 3x3
>> M=[1 0 1; 0 1 0; 1 0 1]
M =
1 0 1
0 1 0
1 0 1
Cette matrice a deux dimensions avec trois lignes et trois colonnes
$$ \begin{pmatrix} 1 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 1 \end{pmatrix} $$
Pour trouver les indices des éléments non nuls, vous pouvez taper find(M)
>> find(M)
ans =
1
3
5
7
9
Les indices 1 et 3 correspondent aux deux premiers éléments non nuls de la première colonne.

L'indice 5 correspond à l'élément non nul de la deuxième colonne, qui est le cinquième élément de la séquence.

Les indices 7 et 9 correspondent aux éléments non nuls de la troisième colonne, qui sont les septième et neuvième éléments de la séquence.

En essence, la fonction find() retourne la position des éléments dans la matrice comme s'ils faisaient partie d'un vecteur unique.
Pour obtenir la position des éléments dans la matrice avec des coordonnées de ligne et de colonne, vous pouvez taper [row,col,v]=find(M)
>> [row,col]=find(M)
row =
1
3
2
1
3
col =
1
1
2
3
3
v =
1
1
1
1
1
La fonction extrait trois tableaux, row et col, qui contiennent respectivement les coordonnées des lignes et des colonnes des éléments. Un autre tableau, v, contient les valeurs.
Pour voir les coordonnées du premier élément sélectionné, vous pouvez taper row(1),col(1)
>> row(1),col(1)
ans = 1
ans = 1
Le premier élément se trouve aux coordonnées (1,1) sur la première ligne et la première colonne.

Pour voir les coordonnées du deuxième élément sélectionné, vous pouvez taper row(2), col(2)
>> row(2),col(2)
ans = 3
ans = 1
Le deuxième élément se trouve aux coordonnées (3,1) sur la troisième ligne et la première colonne.

Ainsi, vous pouvez déterminer précisément la position des éléments dans la matrice.