Не существует функции, которая делает именно это, но atan2
достаточно близко: она обеспечивает
четырехугольный арктангенс элементов X и Y такой, что -pi <= atan2 (Y, X) <= pi </p>
atan2(-1,-1) %=-2.3562
Таким образом, вам нужно позаботиться только о случае <0, когда угол находится в 3-м или 4-м квадранте (как в вашем случае). </p>
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