как переопределить функцию atan2 с -inf на inf в Matlab?
Вопрос
У меня есть вращающийся вектор 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')
Другие советы
Я верю, что вы ищете Фаза невернования .MATLAB имеет 1D-раствор готовым, см. unvrap для получения более подробной информации.
.Не связан с StackOverflow