MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

# finding the top ten values of arrary

Asked 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.

## Products

No products are associated with this question.

Answer by per isakson on 21 Jul 2012
Edited by per isakson on 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```

## 1 Comment

khaled DAWOUD on 21 Jul 2012

Thanks Very much , i realy appreciated you time and help

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