Finding First 50 max. values in an array

  • Follow


Hello,

I have an array with 2 columns and several rows and looks like the following:

Frequency     Voltage
300              -10.5
301              -10.8
302              -10.0
303              -8.0
304              -11.2
......               ........   goes on.........

How can I find the first 50 max values from the voltage column and its coressponding index to get the frequency as well.

Thank you,

Ahmed H
CTH-Sweden
0
Reply Ahmed 3/31/2010 10:08:05 PM

"Ahmed Hussain" <ahmedhussain85@yahoo.com> wrote in message <hp0h44$pj9$1@fred.mathworks.com>...
> Hello,
> 
> I have an array with 2 columns and several rows and looks like the following:
> 
> Frequency     Voltage
> 300              -10.5
> 301              -10.8
> 302              -10.0
> 303              -8.0
> 304              -11.2
> .....               ........   goes on.........
> 
> How can I find the first 50 max values from the voltage column and its coressponding index to get the frequency as well.
> 
> Thank you,
> 
> Ahmed H
> CTH-Sweden

one of the many solutions

     nm=3;     % <- # max
     m=[
          1     1
          2     5
          3     6
          4     2
          6    10
          2     1
          -1    8
     ];
     ms=sortrows(m,2);
     ms=ms(end-nm+1:end,:)
%{
%    ms =
     3     6
     -1     8
     6    10
%}

us
0
Reply us 3/31/2010 10:16:04 PM


"Ahmed Hussain" <ahmedhussain85@yahoo.com> wrote in message <hp0h44$pj9$1@fred.mathworks.com>...
> Hello,
> 
> I have an array with 2 columns and several rows and looks like the following:
> 
> Frequency     Voltage
> 300              -10.5
> 301              -10.8
> 302              -10.0
> 303              -8.0
> 304              -11.2
> .....               ........   goes on.........
> 
> How can I find the first 50 max values from the voltage column and its coressponding index to get the frequency as well.
> 
> Thank you,
> 
> Ahmed H
> CTH-Sweden

doc sort

Notice the second optional output.

Assume X is your two columned matrix:

[Y,ix] = sort(X(:,2),'descend');
%Y is the sorted voltage values max to min
%ix are the corresponding index values that you can relate to frequency

Y(1:50) %is the 50 first max values
X(ix(1:50),1) %is the 50 corresponding frequency values

I hope that helps

-Nathan
0
Reply Nathan 3/31/2010 10:22:06 PM

2 Replies
632 Views

(page loaded in 0.032 seconds)

Similiar Articles:













7/23/2012 6:40:38 PM


Reply: