как переопределить функцию atan2 с -inf на inf в Matlab?

StackOverflow https://stackoverflow.com//questions/20035337

  •  21-12-2019
  •  | 
  •  

Вопрос

У меня есть вращающийся вектор R(x(t), y(t)) и я хочу найти угол как функцию времени.А atan2 определяется между -pi и pi, однако мне неудобно анализировать всю динамику.Итак, есть ли способ расширить atan2 от -inf к inf?

Это было полезно?

Решение

Ваш вопрос не очень ясен, но я думаю, вы ищете функцию разворачивать.Это исправит все 2 pi прыжки, которые вы получаете, когда ваш вектор вращается вокруг отрицательной оси X.Вы используете его так:

t = linspace(0,3,1000);
x = cos(2*pi*t);
y = sin(2*pi*t);
phi = atan2(y,x);
unwrapped_phi = unwrap(phi);
plot(t, phi, t, unwrapped_phi)
xlabel('time (s)')
ylabel('angle (rad)')
legend('wrapped angle','unwrapped angle')

enter image description here

Другие советы

Я верю, что вы ищете Фаза невернования .MATLAB имеет 1D-раствор готовым, см. unvrap для получения более подробной информации.

.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top