我有一个矩阵,我想在每列中找到最大值,然后找到该最大值行的索引。
答案 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
将执行的一行和一列。