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

index des éléments du tableau

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].

le résultat de la recherche

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()
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]

le résultat de la recherche

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.

le résultat de la recherche

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].

le résultat de la recherche

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

le résultat de la recherche

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

le résultat de la recherche

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.

les deux premiers éléments

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.

le cinquième élément de la série

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.

les éléments en position 7 et 9

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.

le premier élément

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.

le deuxième élément

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

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Tableaux dans Octave

Vecteur

Matrice

Struct et Tableau de cellules