finding the top ten values of arrary

1 visualizzazione (ultimi 30 giorni)
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
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.

Accedi per commentare.

Risposta accettata

per isakson
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
  1 Commento
khaled DAWOUD
khaled DAWOUD il 21 Lug 2012
Thanks Very much , i realy appreciated you time and help

Accedi per commentare.

Più risposte (1)

Azzi Abdelmalek
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,:)
  1 Commento
khaled DAWOUD
khaled DAWOUD il 21 Lug 2012
Thanks Very much , i realy appreciated you time and help

Accedi per commentare.

Categorie

Scopri di più su Data Types in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by