finding the top ten values of arrary

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

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

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

Thanks Very much , i realy appreciated you time and help

Sign in to comment.

Categories

Tags

Community Treasure Hunt

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

Start Hunting!