web-dev-qa-db-fra.com

Comment trouver la valeur maximale et son index dans un tableau dans MATLAB?

Supposons que j'ai un tableau, a = [2 5 4 7]. Quelle est la fonction retournant la valeur maximale et son index?

Par exemple, dans mon cas, cette fonction doit renvoyer 7 en tant que valeur maximale et 4 en tant qu'index.

32
Yusef Mohamadi

La fonction est max. Pour obtenir la première valeur maximale, vous devez faire

[val, idx] = max(a);

val est la valeur maximale et idx son index.

68
Acorbe

Pour une matrice, vous pouvez utiliser ceci:

[M,I] = max(A(:))

I est l'indice de A (:) contenant le plus grand élément.

A présent, utilisez la fonction ind2sub pour extraire les index de ligne et de colonne de A correspondant au plus grand élément.

[I_row, I_col] = ind2sub(size(A),I)

source: https://www.mathworks.com/help/matlab/ref/max.html

11
Mohsen

Dans le cas d'un tableau 2D (matrice), vous pouvez utiliser:

[val, idx] = max(A, [], 2);

La partie idx contiendra le numéro de colonne contenant l'élément max de chaque ligne.

6
Rupal Sonawane

Vous pouvez utiliser max () pour obtenir la valeur maximale. La fonction max peut également renvoyer l'index de la valeur maximale dans le vecteur. Pour obtenir cela, affectez le résultat de l'appel à max à un vecteur à deux éléments plutôt qu'à une seule variable.

par exemple. z est ton tableau,

>> [x, y] = max(z)

x =

7

y =

4

Ici, 7 est le plus grand nombre à la 4ème position (index).

4
bonCodigo

cas 3D

Modification de la réponse de Mohsen pour la matrice 3D:

[M,I] = max (A(:));
[ind1, ind2, ind3] = ind2sub(size(A),I)
4
user3804598

Cela retournera la valeur maximale dans une matrice

max(M1(:))

Cela retournera la ligne et la colonne de cette valeur

[x,y]=ind2sub(size(M1),max(M1(:)))

Pour un minimum, il suffit d’échanger le mot max avec min et c’est tout.

0
oumarkh