Hello, I have an array a,i want to find the top ten max values and thier indexes , how i can do that , Thanks ?
No products are associated with this question.
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
% 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
Direct link to this comment:
http://mathworks.com/matlabcentral/answers/44220#comment_90922
if there are many equals numbers, what you want to do, take them all? in this case there will be more than 10 values.