2010-09-09 15 views

Antwort

14

max Befehl kann den maximalen Wert und seinen Index finden.
Hier ist ein Beispiel:

>> 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 
+1

Hinweis verwenden, wenn es mehrere Max-Werte in einer Spalte sind, werden maxInd nur das erste Vorkommen enthalten. – yuk

+0

Ich versuche das, bekomme aber immer den folgenden Fehler: 'Die Indizierung kann nicht zu mehreren Ergebnissen führen.' – Jonathan

+0

auch, ich weiß, dass die spezifische Spalte das Maximum ist, ich brauche es nur, um mir die Zeile zu geben, gibt es einen Weg dafür? – Jonathan

2

Wenn Sie das Maximum einer bestimmten Spalte mögen, nur Sie diese Spalte zu max passieren, oder wählen Sie die Spalte aus der resultierenden Liste des Indizes.

%# 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 

Wenn Sie einen entsprechenden Wert in einem anderen Array suchen, Sie otherArray(rowIdx,3)

Verwandte Themen