Comment trouver une valeur dans un tableau en Octave
Dans ce guide, je vais vous expliquer comment rechercher et trouver des données dans un tableau en utilisant la fonction find() d'Octave.
find(X,N,D)
La fonction find() a trois paramètres :
- X
Le premier paramètre X est un tableau dans lequel effectuer la recherche. C'est un paramètre obligatoire. - N
Il s'agit du nombre maximum d'éléments que vous souhaitez obtenir à partir de la recherche. La recherche s'arrête après N résultats. - D
C'est la direction de recherche. Vous pouvez entrer "first" pour rechercher du premier au dernier élément ou "last" pour rechercher du dernier au premier élément de l'index. Par défaut, c'est "first".
Cette fonction extrait les indices des éléments qui correspondent à la recherche dans le tableau.
Note. La fonction find() renvoie les indices des tableaux dans l'ordre croissant. Pas dans l'ordre d'extraction.
Je vais vous donner un exemple pratique.
Créez un tableau et attribuez-le à la variable V
>> V = [ 1 0 2 0 4 0 4 ]
V =
1 0 2 0 4 0 4
Il y a sept éléments dans le tableau
N'oubliez pas que le premier élément d'un tableau a un indice zéro dans Octave

Tapez find(V) pour trouver les éléments non nuls
>> find(V)
ans =
1 3 5 7
La fonction find() affiche la position des indices des éléments du tableau ayant des valeurs non nulles, c'est-à-dire V[1], V[3], V[5] et V[7].

Les résultats sont les positions des éléments dans l'index du tableau. Ce ne sont pas les valeurs des éléments.
Note. La fonction find() renvoie les mêmes résultats même lorsque le tableau est disposé en colonne. la fonction find()

Tapez find(V,1) pour obtenir un seul résultat de la recherche.
>> find(V,1)
ans = 1
La fonction renvoie la position du premier élément non nul dans le tableau, c'est-à-dire V[1]

Maintenant, tapez find(V,1,"last") pour rechercher de droite à gauche.
>> find(V,1,"last")
ans = 7
Le résultat est l'élément V[7] car c'est le premier avec une valeur non nulle V[7]=4 en partant de la droite.

Si vous voulez trouver des éléments égaux à zéro, tapez une négation avant le nom du tableau.
Tapez find(~V)
>> find(~V)
ans =
2 4 6
La recherche extrait les positions dans l'index des éléments dont la valeur est égale à zéro.
Les résultats sont V[2], V[4] et V[6].

Tapez find(V>2) pour trouver uniquement les éléments du tableau ayant des valeurs supérieures à deux
>> find(V>2)
ans =
5 7
La fonction trouve les éléments V[5] et V[7] du tableau

Lorsque la recherche ne produit aucun résultat, la fonction find() renvoie un ensemble vide.
Par exemple, si vous tapez find(V>5), le résultat est un tableau vide.
>> find(V>5)
ans = [ ](1x0)
Tapez find(V<=3 & V>=1) pour rechercher des éléments du tableau ayant une valeur comprise entre 1 et 3
>> find(V<=3 & V>=1)
ans =
1 3
La recherche extrait les éléments V[1] et V[3] du tableau

Comment effectuer une recherche dans un tableau multidimensionnel ?
Lorsque le tableau est multidimensionnel (par exemple, une matrice), la fonction find recherche les données colonne par colonne.
Par exemple, créez une matrice avec trois lignes et trois colonnes.
>> M=[1 0 1; 0 1 0; 1 0 1]
M =
1 0 1
0 1 0
1 0 1
Le tableau est un tableau à deux dimensions
$$ \begin{pmatrix} 1 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 1 \end{pmatrix} $$
Tapez find(M) pour rechercher des éléments avec une valeur non nulle
>> find(M)
ans =
1
3
5
7
9
La fonction renvoie les positions des éléments dans l'index comme si le tableau était à une dimension, en parcourant les éléments en colonne.
Par exemple, les indices 1 et 3 sont les deux premiers éléments non nuls trouvés sur la première colonne.

L'indice 5 est l'élément non nul de la deuxième colonne.
C'est le cinquième élément analysé par la recherche.

Les indices 7 et 9 sont les éléments non nuls de la troisième colonne.
Ils sont respectivement le septième et le neuvième élément de la séquence d'éléments analysés par la recherche.

Si vous voulez obtenir en résultat les coordonnées (ligne ; colonne) des éléments dans la matrice, vous devez utiliser une autre commande.
Tapez [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
Dans ce cas, la fonction extrait trois tableaux :
- le premier tableau (row) contient les numéros de ligne
- le deuxième tableau (col) contient les numéros de colonne
- le troisième tableau (v) contient les valeurs des éléments
Par exemple, pour afficher les coordonnées du premier résultat de recherche, tapez row(1),col(1)
>> row(1),col(1)
ans = 1
ans = 1
Le premier élément non nul de la matrice se trouve aux coordonnées (1,1), c'est-à-dire à la première ligne et première colonne de la matrice.

Pour afficher les coordonnées du deuxième résultat, tapez row(2),col(2)
>> row(2),col(2)
ans = 3
ans = 1
Le deuxième élément ayant une valeur non nulle se trouve aux coordonnées (3,1), c'est-à-dire à la troisième ligne et première colonne de la matrice.

De cette manière, vous pouvez obtenir la position exacte des éléments dans le tableau.