MATLAB Answers

how to clip column into vectors with the rules I set

15 views (last 30 days)
ZHEN XU
ZHEN XU on 18 Sep 2020
Edited: Stephen Cobeldick on 24 Sep 2020
I wanna clip the 2nd column while the first cloumn increased by 10 each time. Note: the output vector length of 2nd column between 10 and 20 could be different. For example, the matrix
A =
1.0000 0.3000
5.2000 0.8000
9.2000 95.0000
17.8500 21.0000
19.5600 78.0000
20.5800 9.2300
25.0000 8.0000
28.0000 9.6500
29.1200 45.0000
Output:
B1 =
0.3000
0.8000
95.0000
B2 =
21
78
B3 =
8.0000
9.6500
45.0000
How should I do this? Thank you.

Answers (1)

Stephen Cobeldick
Stephen Cobeldick on 24 Sep 2020
Edited: Stephen Cobeldick on 24 Sep 2020
>> [~,~,idx] = unique(floor(A(:,1)/10));
>> out = accumarray(idx,A(:,2),[],@(v){v});
>> out{1}
ans =
0.3000
0.8000
95.0000
>> out{2}
ans =
21.0000
78.0000
>> out{3}
ans =
9.2300
8.0000
9.6500
45.0000

  0 Comments

Sign in to comment.

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!