Trouver l'indice de valeur dans un tableau dans Matlab

Ammar Ali 29 novembre 2021
Trouver l'indice de valeur dans un tableau dans Matlab

Ce didacticiel abordera la recherche de l’index d’une valeur dans un tableau à l’aide de la fonction find() dans MATLAB.

Trouver l’indice de valeur dans un tableau à l’aide de la fonction find() dans MATLAB

Dans un tableau, les éléments sont placés sur certains index à partir de 1 et ainsi de suite. Pour trouver l’indice d’une valeur dans un tableau donné, on peut utiliser la fonction find(). La fonction find() est utilisée pour rechercher des indices et des valeurs d’éléments dans un tableau ou une matrice. Pour trouver des indices d’éléments, nous devons définir une condition à l’intérieur de la fonction find(). Par exemple, si nous voulons trouver l’index d’un seul élément, nous pouvons utiliser l’opérateur égal à l’intérieur de la fonction find(). Si le même élément est présent à des indices différents, la fonction find() renverra tous les indices où l’élément est présent. Nous pouvons utiliser toutes sortes d’instructions conditionnelles à l’intérieur de cette fonction. Par exemple, supposons que nous voulions trouver des indices de tous les éléments supérieurs à un certain nombre. Dans ce cas, nous pouvons utiliser l’opérateur supérieur à, et il renverra les indices de tous les éléments supérieurs à ce nombre spécifique. Par exemple, recherchons l’indice d’un seul élément présent à l’intérieur d’un tableau donné. Voir le code ci-dessous.

mat = [2 3 1 2];
indices = find(mat==2)

Production:

indices =

     1     4

Les indices de variable contiennent deux valeurs dans la sortie ci-dessus, ce qui signifie que l’élément est présent aux indices 1 et 4 à l’intérieur du tableau ou du vecteur. Considérons maintenant que nous voulons trouver les indices des éléments supérieurs à 1. Nous devons changer la condition à l’intérieur de la fonction find(). Au lieu d’utiliser l’opérateur égal, nous utiliserons l’opérateur supérieur à. Voir le code ci-dessous.

mat = [2 3 1 2];
indices = find(mat>1)

Production:

indices =

     1     2     4

Dans la sortie ci-dessus, les indices de variable contiennent trois valeurs et, comme vous pouvez le voir, trois éléments sont supérieurs à un à l’intérieur du tableau ou du vecteur donné. Si nous avons une matrice et que nous voulons trouver la position d’un élément à l’intérieur du vecteur, nous pouvons utiliser la fonction find(). Nous savons que l’élément à l’intérieur d’une matrice est placé sur une certaine ligne et colonne, et pour trouver cette ligne et cette colonne spécifiques, nous pouvons utiliser la fonction find(). Si l’élément est présent à plusieurs positions, la fonction find() renverra plusieurs valeurs pour la ligne et la colonne. Voir le code ci-dessous.

mat = [2 3 ; 2 1]
[row, col] = find(mat==2)

Production:

mat =

     2     3
     2     1


row =

     1
     2


col =

     1
     1

Dans la sortie ci-dessus, la matrice a deux lignes et deux colonnes, la première valeur du vecteur ligne et colonne est la première position de l’élément, qui est la 1ère ligne et la 1ère colonne, et la deuxième valeur de la ligne et de la colonne est la deuxième position de l’élément qui est la 2ème ligne et la 1ère colonne. Si vous voulez trouver les indices de l’élément 2 dans la matrice donnée, la fonction find() renverra 1 et 2 car les valeurs sont placées par colonne dans le cas de la matrice. Cela signifie que la valeur 2 est à l’index 1 et 2 et la valeur 3 est à l’index 3, et la valeur 1 est à l’index 4. Donc si au lieu de deux variables de sortie, vous ne passez qu’une variable, la fonction find() retournera les indices par colonne. Par exemple, recherchons les indices de l’élément et remplaçons-les par une autre valeur. Voir le code ci-dessous.

mat = [2 3 ; 2 1]
indices = find(mat==2)
mat(indices) = 5

Production:

mat =

     2     3
     2     1


indices =

     1
     2


mat =

     5     3
     5     1

Dans le code ci-dessus, nous trouvons d’abord les indices de l’élément deux, puis nous remplaçons la valeur par 5 à l’aide des indices, et comme vous pouvez le voir, les valeurs de la matrice ont été modifiées. Si vous ne souhaitez pas utiliser la fonction find() pour une raison quelconque, vous pouvez toujours créer votre fonction en utilisant une boucle for et une instruction if. Vous devez parcourir tous les éléments du tableau ou de la matrice et, à l’aide de l’instruction if, vous pouvez vérifier si la valeur actuelle correspond ou non à la valeur souhaitée. S’il correspond à la valeur souhaitée, vous pouvez enregistrer son index et continuer jusqu’à ce que vous ayez vérifié tous les éléments présents dans le tableau. Par exemple, utilisons une boucle for et une instruction if pour trouver les indices d’un vecteur ou d’un tableau. Voir le code ci-dessous.

mat = [2 3 2 1]
indices = [];
for i=1:length(mat)
    if(mat(i) == 2)
        indices = [indices i];
    end
end
indices

Production:

mat =

     2     3     2     1


indices =

     1     3

Dans le code ci-dessus, nous avons initialisé les indices de variables avec un vecteur vide. Lorsque la valeur deux correspond à n’importe quel élément à l’intérieur du tableau, nous enregistrerons cet index dans la variable indices.

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 Array