【问题标题】:elegant k-smallest argmin in MatlabMatlab中优雅的k最小argmin
【发布时间】:2016-08-26 21:13:52
【问题描述】:

是否有一种更清洁的方法(例如,理想情况下是内置的;如果我错过了一些明显的东西,我从来没有使用过 Matlab,所以很抱歉)在 Matlab 中执行 k-smallest argmin 的方法(即,如果数组是 [4,5,6 ,7] 它应该按该顺序返回索引 1,2)除了以下内容:

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

【问题讨论】:

    标签: matlab min


    【解决方案1】:

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

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

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

    【讨论】:

    • 猜猜我仍然不习惯在你要求时随机添加额外的返回参数的函数...... grr
    猜你喜欢
    • 1970-01-01
    • 2014-10-04
    • 2018-06-27
    • 2014-04-12
    • 2018-11-28
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多