finding the top ten values of arrary

2 views (last 30 days)
Hello, I have an array a,i want to find the top ten max values and thier indexes , how i can do that , Thanks ?
  1 Comment
Azzi Abdelmalek
Azzi Abdelmalek on 21 Jul 2012
if there are many equals numbers, what you want to do, take them all? in this case there will be more than 10 values.

Sign in to comment.

Accepted Answer

per isakson
per isakson on 21 Jul 2012
Edited: per isakson on 21 Jul 2012
Try this:
M = magic(4);
N = 10;
[ b, ix ] = sort( M(:), 'descend' );
[ rr, cc ] = ind2sub( size(M), ix(1:N) );
for ii = 1 : N
disp( M( rr(ii), cc(ii) ) )
end
  1 Comment
khaled DAWOUD
khaled DAWOUD on 21 Jul 2012
Thanks Very much , i realy appreciated you time and help

Sign in to comment.

More Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 21 Jul 2012
Edited: Azzi Abdelmalek on 21 Jul 2012
% try this
a=[1 2 7 8 8 5 20 20 40 0 1 8 77 77 87 87 52 36 87 12 78]';
c=flipud(unique(sort(a))),
result=c(1:10); %top ten
ind=find(a>=c(10)) %their indices
resultat=flipud(sortrows([a(ind) ind],1))
% because there equals number , there is more than 10 classed. if you want take only %10 include this code
resultat1=resultat(1:10,:)
  1 Comment
khaled DAWOUD
khaled DAWOUD on 21 Jul 2012
Thanks Very much , i realy appreciated you time and help

Sign in to comment.

Categories

Find more on Data Types in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!