2016-05-02 14 views
5

Matlabでk最小のargminを実行する方法(つまり、配列が必要な場合は、 [4,5,6,7]、それはインデックスをこの順に1,2を返すべきであるが)のようなもの以外である:Matlabのエレガントなk-smallest argmin

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

答えて

4

はその後、我々は、アレイarrk最小要素のインデックスをしたいと言う:

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

kの値が最大値の場合は、descend引数を使用します。代わりに

+0

あなたがそれらを求めるなら、余分なリターンパラメータをランダムに追加する関数にはまだ慣れていないと思う... grr – houbysoft

関連する問題