두 점, a
및 b
이 있습니다. 나는 그들 사이의 각도를 계산해야하므로 벡터처럼 취급합니다. 그러나 벡터 a
은 항상 [0 0 0]으로 정의됩니다. 다양한 MATLAB 뉴스 리더상에서 판독 "Angle between two vectors는"세 가지 솔루션이 제공된다 : 세타가 제로에 가까워 아직 세 방정식에서 단지 acos
가 정확한 솔루션을 제공하기 때문에 정밀도에 문제가Matlab의 두 벡터 사이의 각도
x1 = 0;
y1 = 0;
z1 = 0;
x2 = 0;
y2 = 1;
z2 = 0;
a = [x1,y1,z1]; b= [x2,y2,z2];
theta = rad2deg(atan2(norm(cross(a,b)),dot(a,b)))
theta = rad2deg(acos(dot(a,b)))
theta = rad2deg(atan2(x1*y2-x2*y1,x1*x2+y1*y2))
그러나 acos
있다.
acos
을 계속 사용해야합니까, 아니면 더 좋은 해결책이 있습니까?
? 두 벡터가 [0 0 0] 일 때 두 벡터 사이의 각은 무엇입니까? – Henrik
하나가 0 인 두 벡터 사이의 각도를 찾는 것은 무엇을 의미합니까? a [1 1 1]이 아니어야합니까? 또한, acos가있는 수식은 벡터의 단위 길이가 유효 할 때만 유효하며 적어도 길이는 사실이 아닙니다. – Xodarap