Встроенная функция для получения угла между вектором и положительной осью х - Matlab - PullRequest
0 голосов
/ 19 декабря 2018

Мне интересно, возможно ли получить угол между вектором и положительной осью x в Matlab с помощью встроенной функции.

Например, если у меня есть a = [- 1 -1], я бы хотел получить 5pi / 4 или 3.926.

Заранее спасибо.

1 Ответ

0 голосов
/ 19 декабря 2018

Не существует функции, которая делает именно это, но 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...