没有循环的矩阵中每行的Min的索引

时间:2017-03-14 14:21:33

标签: matlab matrix min

我在这样的矩阵上工作:

A=[1,2,3;5,4,6;9,8,7];

我想得到每一行的索引。这是:Index = [1;2;3]

但是如何在没有循环的情况下得到这个呢?

我暂时这样做:

for k=1:length(A)
    [~,Index(k)] = min(A(k,:));
end

1 个答案:

答案 0 :(得分:2)

来自documentation

  

M = min(A,[],dim)返回维度dim中的最小元素。例如,如果A是矩阵,则min(A,[],2)列向量,其中包含每行的最小值

查看输出选项,您可以看到

  

[M,I] = min(___)找到A的最小值的索引,并在输出向量I中返回它们。

您已经在使用上述文档说明的第二部分,所以只需将两者结合起来......

A=[1,2,3; 5,4,6; 9,8,7];
[~, idx] = min(A, [], 2);
% result: idx = [1; 2; 3];