我想知道是否可以通过使用内置函数在Matlab中获得向量与x轴正方向之间的角度。
例如,如果我有a = [-1 -1],我想得到5pi / 4或3.926。
谢谢。
答案 0 :(得分:4)
没有功能可以做到这一点,但是atan2
足够接近:它提供了
X和Y元素的四个象限反正切 这样-pi <= atan2(Y,X)<= pi
atan2(-1,-1) %=-2.3562
因此,当角度在第3象限或第4象限(在您的情况下)时,只需照顾<0情况。
a=[-1,-1];
angle_to_xaxis = angleatan2(a(2),a(1)) %=-2.3562
if angle_to_xaxis < 0
angle_to_xaxis = angle_to_xaxis + 2pi %= 3.9270
end
如果必须多次计算角度,则可能需要使用该角度来制作函数,而不必每次都使用if进行检查:
Findangletoxaxis = @(a) mod(atan2(a(2),a(1)),2*pi); %anonymous function
a=[-1,-1];
Findangletoxaxis(a)
mod
如果除数为正,则结果始终为正。感谢@Cris Luengo