finding the top ten values of arrary
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
Azzi Abdelmalek
2012-7-21
if there are many equals numbers, what you want to do, take them all? in this case there will be more than 10 values.
采纳的回答
per isakson
2012-7-21
编辑:per isakson
2012-7-21
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 个)
Azzi Abdelmalek
2012-7-21
编辑:Azzi Abdelmalek
2012-7-21
% 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,:)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!