finding the top ten values of arrary
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentar
Azzi Abdelmalek
am 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.
Akzeptierte Antwort
per isakson
am 21 Jul. 2012
Bearbeitet: per isakson
am 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
Weitere Antworten (1)
Azzi Abdelmalek
am 21 Jul. 2012
Bearbeitet: Azzi Abdelmalek
am 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,:)
Siehe auch
Kategorien
Mehr zu Data Types finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!