# use array operations to add 360 to elements of an array less than -180 without a loop

2 views (last 30 days)
Stephen Marsden on 2 Feb 2023
Answered: the cyclist on 2 Feb 2023
I have an array of angles that are all close to zero. When plotted the y-axis has limits of -380 , +20. The 360 degree jump when the value crosses zero is dominant over other trends. Mean and standard deviation are meaningless. I would like to add 360 if the value is less than -180 and subtract 360 if the value is more than 180. I could do a do loop with an if statement, but I'm hoping to do it as an array operation.
A = [1,2,3,359,5,358,355];
if A>=180
A2=A-360;
end
A2
A2 =
1 2 3 -1 5 -2 -5

the cyclist on 2 Feb 2023
A = [1,2,3,359,5,358,355];
idx = (A>=180);
A(idx) = A(idx) - 360
A = 1×7
1 2 3 -1 5 -2 -5

### Categories

Find more on Matrices and Arrays in Help Center and File Exchange

R2022b

### Community Treasure Hunt

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

Start Hunting!