J'essaie de trouver la valeur maximale d'une certaine colonne dans une matrice. Je veux trouver à la fois la valeur maximale et l'indice de la ligne dans laquelle il se trouve. Comment puis-je faire ceci? Commande peut trouver à la fois la valeur maximale et son index.Comment puis-je trouver l'index de la valeur maximale dans une colonne de matrice dans MATLAB?
13
A
Répondre
14
max
Voici un exemple:
>> A = randn(10,3)
A =
0.8884 -0.10224 -0.86365
-1.1471 -0.24145 0.077359
-1.0689 0.31921 -1.2141
-0.8095 0.31286 -1.1135
-2.9443 -0.86488 -0.0068493
1.4384 -0.030051 1.5326
0.32519 -0.16488 -0.76967
-0.75493 0.62771 0.37138
1.3703 1.0933 -0.22558
-1.7115 1.1093 1.1174
>> [maxVal maxInd] = max(A)
maxVal =
1.4384 1.1093 1.5326
maxInd =
6 10 6
2
Si vous voulez le maximum d'une colonne spécifique, vous passez seulement cette colonne à max
, ou vous sélectionnez la colonne dans la liste résultant des indices.
%# create an array
A = magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
%# select the maximum of column 3
[maxValue, rowIdx] = max(A(:,3),[],1)
maxValue =
15
rowIdx =
4
Si vous devez rechercher une valeur correspondante dans un autre tableau, utilisez otherArray(rowIdx,3)
avis, s'il y a plusieurs valeurs max dans une colonne, maxInd contiendra uniquement la première occurrence. – yuk
J'essaye cela mais j'obtiens l'erreur suivante: "L'indexation ne peut pas donner plusieurs résultats". – Jonathan
aussi, est-ce que je connais la colonne spécifique le maximum est, je l'ai juste besoin pour me donner la rangée, y at-il un moyen pour cela? – Jonathan