Как найти индекс максимального значения в столбце матрицы в MATLAB?

Я пытаюсь найти максимальное значение определенного столбца в матрице. Я хочу найти как максимальное значение, так и индекс строки, в которой он находится. Как я могу это сделать?

Ответы

Ответ 1

Команда

max может найти как максимальное значение, так и его индекс.
Вот пример:

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

Если вам нужен максимум определенного столбца, вы передаете только этот столбец в max или вы выбираете столбец из результирующего списка индексов.

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

Если вам нужно найти соответствующее значение в другом массиве, используйте otherArray(rowIdx,3)