finding the top ten values of arrary
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commento
Azzi Abdelmalek
il 21 Lug 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.
Risposta accettata
per isakson
il 21 Lug 2012
Modificato: per isakson
il 21 Lug 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
Più risposte (1)
Azzi Abdelmalek
il 21 Lug 2012
Modificato: Azzi Abdelmalek
il 21 Lug 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,:)
Vedere anche
Categorie
Scopri di più su Data Types in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!