MATLAB Answers

Find indicies of k smallest matrix elements

5 views (last 30 days)
Brady Dean
Brady Dean on 29 Sep 2020
Commented: madhan ravi on 29 Sep 2020
I'm trying to find the indicies of smallest k matrix elements.
For example if I have
A = [10 5 2; 34 5 21; 4 6 8];
and I want to find the smallest 2 elements indicies then I want indicies 7 and 3.

  0 Comments

Sign in to comment.

Accepted Answer

Xingwang Yong
Xingwang Yong on 29 Sep 2020
[~, indices] = sort(A(:), 'ascend');
ind = indices(1:k);

  1 Comment

Brady Dean
Brady Dean on 29 Sep 2020
Ah, I forgot about the A(:) trick. This works perfectly.

Sign in to comment.

More Answers (1)

Sindar
Sindar on 29 Sep 2020
[~,idx] = mink(A,2);

  3 Comments

madhan ravi
madhan ravi on 29 Sep 2020
The reason is because the OP was using older version of MATLAB, in case you were wondering.
Brady Dean
Brady Dean on 29 Sep 2020
I'm using R2020b, that's the newest isn't it?
mink gives minimums over a dimension, not the whole matrix. Sindar's code doesn't work for my example above.
madhan ravi
madhan ravi on 29 Sep 2020
Unfortunately not everyone has the Crystal Ball.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!