كيفية إعادة تعريف وظيفة atan2 من -inf إلى inf في matlab؟
سؤال
لدي ناقلات الدورية R(x(t), y(t))
وأريد إيجاد زاوية كدالة للزمن.ال atan2
يتم تحديد بين -pi
و pi
, ومع ذلك، فمن غير الملائم بالنسبة لي تحليل جميع الديناميكيات.لذا، هل هناك أي طريقة للتوسع atan2
من -inf
ل inf
?
المحلول
سؤالك ليس واضحًا جدًا، لكن أعتقد أنك تبحث عن الوظيفة بسط.سيؤدي هذا إلى تصحيح كافة 2 pi
القفزات التي تحصل عليها عندما يدور المتجه عبر المحور السيني السلبي.يمكنك استخدامه مثل هذا:
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')
نصائح أخرى
أعتقد أنك تبحث عنه مرحلة التفكيك.ماتلاب لديه حل 1D جاهز، انظر بسط لمزيد من التفاصيل.
لا تنتمي إلى StackOverflow