finding the top ten values of arrary
3 views (last 30 days)
Show older comments
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
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.
Accepted Answer
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
More Answers (1)
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,:)
See Also
Categories
Find more on Data Types in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!