Matlab atan结果范围

时间:2014-04-25 14:28:14

标签: matlab range

我在matlab中遇到了一个小相位包装问题。

我应用atan(x)来确定另一个向量的反正切,以元素方式。我期待在0和pi之间的范围内的结果。 atan(x)给出了-pi / 2和pi / 2之间的结果,这是标准的。

是否有一种智能的方法可以改变输出范围,而无需通过输入或输出中的所有元素来通过if语句将它们移动到所需的范围?

此致

RTT

1 个答案:

答案 0 :(得分:2)

您需要将间隔(-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));