finding the top ten values of arrary

Asked by khaled DAWOUD on 21 Jul 2012
Latest activity Commented on by khaled DAWOUD on 21 Jul 2012

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 Comment

Azzi Abdelmalek on 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.

khaled DAWOUD

Tags

Products

No products are associated with this question.

2 Answers

Answer by per isakson on 21 Jul 2012
Edited by per isakson on 21 Jul 2012
Accepted answer

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 Comment

khaled DAWOUD on 21 Jul 2012

Thanks Very much , i realy appreciated you time and help

per isakson
Answer by Azzi Abdelmalek on 21 Jul 2012
Edited by Azzi Abdelmalek on 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,:)

1 Comment

khaled DAWOUD on 21 Jul 2012

Thanks Very much , i realy appreciated you time and help

Azzi Abdelmalek

Contact us