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);
...
假设我们想要数组 arr
中 k
最小元素的索引,那么:
arr=[4,5,6,7,2];
[~,indices]=sort(arr,'ascend');
argmin=indices(1:k);
如果想要 k
最高值,请改用 descend
参数。
是否有更清洁的方法(例如,理想情况下是内置的;我从未使用过 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);
...
假设我们想要数组 arr
中 k
最小元素的索引,那么:
arr=[4,5,6,7,2];
[~,indices]=sort(arr,'ascend');
argmin=indices(1:k);
如果想要 k
最高值,请改用 descend
参数。