كيفية إعادة تعريف وظيفة 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 القفزات التي تحصل عليها عندما يدور المتجه عبر المحور السيني السلبي.يمكنك استخدامه مثل هذا:

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

نصائح أخرى

أعتقد أنك تبحث عنه مرحلة التفكيك.ماتلاب لديه حل 1D جاهز، انظر بسط لمزيد من التفاصيل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top