赋值是:相应地重置存储在矩阵中的值,使它们位于此范围内[-pi,pi]。注意不要使用任何非标准的Matlab函数来执行此操作。
(当然,对于任何整数n,所有角度theta + 2n * pi都相同。因此,例如:1.5 * pi的角度应重置为-0.5 * pi。)
非标准matlab函数wraptopi执行此操作(我认为),但我不允许使用此函数。 我觉得我可以用modulo来做这件事,但我不知道怎么做。
有人可以帮我吗?
提前致谢
答案 0 :(得分:3)
要扩展@Ben Voight,您可以通过这种方式使用模数式操作:
要换行[0,2 * pi],你可以这样做:
angle_rad = angle_rad - 2*pi*floor(angle_rad/(2*pi));
要换行到[-pi,+ pi],你需要添加另一个术语
angle_rad = angle_rad - 2*pi*floor( (angle_rad+pi)/(2*pi) );