use array operations to add 360 to elements of an array less than -180 without a loop
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Stephen Marsden
le 2 Fév 2023
Réponse apportée : the cyclist
le 2 Fév 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
0 commentaires
Réponse acceptée
the cyclist
le 2 Fév 2023
A = [1,2,3,359,5,358,355];
idx = (A>=180);
A(idx) = A(idx) - 360
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!