Extracting and sorting data in a column

4 views (last 30 days)
Olu B
Olu B on 8 Aug 2019
Edited: madhan ravi on 8 Aug 2019
Hi For example I have a 19 x1 colunmn called Mx and I need to find the maximum value in every 2 rows till the end of the column.
Mx
20
22
23
21
34
54
23
14
67
56
34
32
21
12
43
23
56
34
32
  2 Comments
Alex Mcaulley
Alex Mcaulley on 8 Aug 2019
Can you show the expected result in your example?
Olu B
Olu B on 8 Aug 2019
The expected result would be
NewMx = [22 23 54 23 67 34 21 43 56 32]
Cheers

Sign in to comment.

Answers (2)

madhan ravi
madhan ravi on 8 Aug 2019
Edited: madhan ravi on 8 Aug 2019
Works for odd as well as even number of elements:
NewMx = max(reshape([Mx(:);...
-Inf(mod(numel(Mx),2))],2,[])) % thank you Guillaume
  7 Comments

Sign in to comment.


Jos (10584)
Jos (10584) on 8 Aug 2019
This works for both an even or an odd number of elements:
N = 11 ; % odd
Mx = randi(10, N, 1)
M2 = accumarray(ceil((1:numel(Mx))/2).', Mx, [], @max)

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!