Re: [問題] 求兩向量夾角已回收
※ 引述《s31039 (Brice)》之銘言:
: 在三維空間中
: 我想知道如何去求兩向量之間的夾角角度
: 爬過文後使用餘弦定理去試過
: 但是只有特定的向量才會跑出合理的角度
: 大部分都會跑出奇怪的複數出來
: 請問該如何算此類問題呢?
: 謝謝
我猜你的問題是底下這樣...
>> A=[1 1 1];
>> B=[-1 -1 -1]';
>> C=(A*B)/(sqrt(1^2+1^2+1^2)*sqrt(-1^2+-1^2+-1^2));
>> d=acos(C)
d =
1.5708 - 0.8814i
>> C
C =
0 + 1.0000i % C 怪怪的
>> A*B
ans =
-3 % 內積沒問題
>> sqrt(1^2+1^2+1^2)*sqrt(-1^2+-1^2+-1^2)
ans =
0 + 3.0000i % 問題出在這
如果你也是上述寫法,就改一下...
>> sqrt(1^2+1^2+1^2)*sqrt((-1)^2+(-1)^2+(-1)^2)
ans =
3.0000 % 把上面的 -1 用括號括起來
>> C=(A*B)/(sqrt(1^2+1^2+1^2)*sqrt((-1)^2+(-1)^2+(-1)^2))
C =
-1.0000 % C 就正常了
>> d=acos(C)
d =
3.1416 - 0.0000i
答案就是 π 囉^^
我剛剛還有查到 norm 這個函數你可以用用
>> C=(A*B)/(norm(A)*norm(B))
答案是一樣的.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: laechan 來自: 192.192.102.143 (03/09 20:10)
推
03/09 20:31, , 1F
03/09 20:31, 1F
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章