Group values of a vector into new vectors according to magnitude

1 view (last 30 days)
I have a vector A with different values of angles:
A = [17 323 100 3 278 220 45 351 212 51]
what I need is to group all angles between 0 and 50° into a new vector called B, all angles between 50° and 100° into a new vector called C, and all angles between 100° and 360° into a new vector called D.
How can I achieve that?

Accepted Answer

Chunru
Chunru on 17 Sep 2021
A = [17 323 100 3 278 220 45 351 212 51]
A = 1×10
17 323 100 3 278 220 45 351 212 51
B = A(A>=0 & A<50)
B = 1×3
17 3 45
C= A(A>=50 & A<100)
C = 51
% Leave D for you

More Answers (1)

Jan
Jan on 17 Sep 2021
A = [17 323 100 3 278 220 45 351 212 51];
Y = discretize(A, [0, 50, 100, 360])
Y = 1×10
1 3 3 1 3 3 1 3 3 2
C = splitapply(@(x) {x}, A, Y)
C = 1×3 cell array
{[17 3 45]} {[51]} {[323 100 278 220 351 212]}

Categories

Find more on Numeric Types 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!