MATLAB:在矩阵中查找行索引

时间:2014-05-28 19:26:49

标签: matrix matlab

我有一个矩阵,我想在每列中找到最大值,然后找到该最大值行的索引。

3 个答案:

答案 0 :(得分:0)

A = magic(5)

A =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

[~,colind] = max(max(A))

colind =

     3

返回colind作为包含最大值的列索引。如果你想要这一行:

[~,rowind] = max(A);
max(rowind)

ans =

    5

答案 1 :(得分:0)

您可以使用相当简单的代码来执行此操作。

MaximumVal=0
for i= i:length(array)
   if MaximumVal>array(i)
      MaximumVal=array(i);
      Indicies=i;
   end
end
MaximumVal
Indicies    

答案 2 :(得分:0)

另一种方法是使用find。您可以立即输出最大元素的行和列,而无需根据您的问题调用max两次。就这样,这样做:

%// Define your matrix
A = ...;

% Find row and column location of where the maximum value is
[maxrow,maxcol] = find(A == max(A(:)));

另外,请注意,如果您有多个共享相同最大值的值,则会在矩阵中输出所有的行和列,这些行和列共享此最大值,因此它不是仅限于max将执行的一行和一列。