ش | ی | د | س | چ | پ | ج |
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
محاسبه زاویه بین دو بردار با دستور norm در متلب
به لحاظ هندسی می دانیم که ضرب داخلی دو بردار به اندازه دو بردار و زاویه بین آنها وابسته است. در نرم افزار متلب (Matlab)، با استفاده از دستور norm می توان زاویه میان دو بردار را تعیین کرد.
به مثال زیر توجه کنید:
u=[1, 2, 3];
v=[-1, 0, 4];
theta=acos((u*v')/(norm(u)*norm(v)))
در مثال فوق با استفاده از دستور v' بردار v ترانهاده می شود. همچنین می توان از دستور rad2deg(theta) برای تبدیل زاویه از رادیان به درجه استفاده کرد.
Teta=acosd(dot(u,v)/sqrt(dot(u,u)*dot(v,v)))
سلام دوست عزیز
دستور فوق چک شد و به همین صورت صحیح است.
برای اطمینان میتونید بجای v از u استفاده کنید و مشاهده می کنید که زاویه صفر رو نتیجه می دهد.
سپاس از نظر شما
با سلام
این دستور محاسبه زاویه بین دو بردار با استفاده از تابع norm در صورتی که دو بردار یکسان باشید، صحیح نیست و مقدار موهومی به دست میآید.
در مخرج این دستور بهتر است که از sqrt(u.u)*sqrt(v.v) استفاده کنید.
اما اگر دو بردار یکی نباشند، جواب صحیح ارائه میکند.
سلام دوست عزیز
دستور فوق چک شد و به همین صورت صحیح است.
برای اطمینان میتونید بجای v از u استفاده کنید و مشاهده می کنید که زاویه صفر رو نتیجه می دهد.
سپاس از نظر شما