在Matlab中优雅的k-smallest argmin

时间:2016-05-02 07:06:55

标签: matlab min

是否有一个清洁器(如在理想情况下内置;我从未使用过Matlab,如果我错过了一些明显的东西,那么道歉)在Matlab中做k最小的argmin(即如果一个数组是[4,5,6] ,7]它应该按顺序返回索引1,2)除了像:

之类的东西
arr = [4,5,6,7];
[~, argmin1] = min(arr);
arr(argmin1) = Inf;
[~, argmin2] = min(arr);
...

1 个答案:

答案 0 :(得分:4)

假设我们想要数组karr最小元素的索引,然后:

arr=[4,5,6,7,2];
[~,indices]=sort(arr,'ascend');
argmin=indices(1:k);

如果想要k个最高值,请改用descend参数。