2010-09-09 23 views

Respuesta

14

El comando max puede encontrar tanto el valor máximo como su índice.
He aquí un ejemplo:

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

Aviso, si hay varios valores máximos en una columna, maxInd contendrá sólo la primera aparición. – yuk

+0

Lo intento pero sigo recibiendo el siguiente error: 'Indexar no puede arrojar resultados múltiples'. – Jonathan

+0

también, ¿conozco la columna específica que es el máximo? Solo necesito que me proporcione la fila, ¿hay alguna manera de hacerlo? – Jonathan

2

Si desea que el máximo de una columna específica, pasa únicamente a esa columna max, o selecciona la columna de la lista resultante de índices.

%# 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 necesita buscar un valor correspondiente en otra matriz, se utiliza otherArray(rowIdx,3)

Cuestiones relacionadas