Matlab 中优雅的 k-最小 argmin

elegant k-smallest argmin in Matlab

是否有更清洁的方法(例如,理想情况下是内置的;我从未使用过 Matlab,如果我错过了一些明显的东西,我深表歉意)在 Matlab 中执行 k-最小 argmin 的方法(即,如果数组是 [4,5 ,6,7] 它应该 return 该顺序的索引 1,2) 除了像这样的东西:

arr = [4,5,6,7];
[~, argmin1] = min(arr);
arr(argmin1) = Inf;
[~, argmin2] = min(arr);
...

假设我们想要数组 arrk 最小元素的索引,那么:

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

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