How to wrap angle in radians to [-pi/2 pi/2]?

28 vues (au cours des 30 derniers jours)
EllaM
EllaM le 8 Fév 2017
Commenté : Image Analyst le 8 Fév 2017
I want to limit an angle in radians to be between -pi/2 and pi/2. I have tried to modify the function wrapToPi, but it does not give me the desired result. Here is my attempt:
function lambda = wrapToHalfPi(lambda)
q = (lambda < -pi/2) | (pi/2 < lambda);
lambda(q) = wrapTo2Pi(lambda(q) + 3*pi/2) - 3*pi/2;
Thanks!
  1 commentaire
Image Analyst
Image Analyst le 8 Fév 2017
Do you mean "limit" to mean "clamp" or "clip", or to mean "mod". For example if the input was (3/4)pi, would you want the answer to be pi/4 (distance past pi/2) or pi/2 (clamped at that value) or something else?

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 8 Fév 2017
Modifié(e) : Stephen23 le 8 Fév 2017
Not quite the same, because this gives [-pi/2,pi/2), but it might be interesting for you nonetheless:
out = mod(lambda+pi/2,pi)-pi/2
To get the range [-pi/2,pi/2], something like this:
tmp = mod(lambda+pi/2,pi);
out = tmp+pi*(lambda>0&tmp==0)-pi/2
  2 commentaires
EllaM
EllaM le 8 Fév 2017
Thanks for you answer! Could you please explain a bit further what you mean?
Stephen23
Stephen23 le 8 Fév 2017
@EllaM: try it with some values of lambda, and see what it does.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by