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

4 vues (au cours des 30 derniers jours)
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

Réponse acceptée

the cyclist
the cyclist le 2 Fév 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

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by