我在matlab中遇到了一个小的相位包装问题。
我应用atan(x)来确定另一个向量的逆切线,按元素的方向。我期待在0到pi之间的结果。atan(x)给出了-pi/2和pi/2之间的结果,这是标准的。
是否有一种明智的方法来移动输出范围,而不必通过输入或输出中的所有元素来通过if语句将它们移动到所需的范围?
致以敬意,
RTT
发布于 2014-04-25 14:39:53
您需要将区间(-pi/2,0)转换为(pi/2,pi)。为此,您可以使用mod
y = mod(atan(x), pi);另一种可能性是:使用atan2。这允许您指定所需角度的正弦和余弦作为单独的输入,从而可以控制输出间隔。要获得(0,pi)的输出,正弦(atan2的第一个输入)应该是正的。因此,您可以使用abs(x)作为第一个输入,并将x的符号移动到第二个输入:
y = atan2(abs(x), sign(x));https://stackoverflow.com/questions/23295943
复制相似问题