フィルターのクリア

How to find angle between 2 3D vectors?

2 ビュー (過去 30 日間)
Ampi
Ampi 2013 年 6 月 1 日
編集済み: Kamal 2013 年 11 月 23 日
Hello, I have 2 sets of 3D data and I want to find out the angle between the two after dimensionality reduction. I have written the following code but the accurate angle is not showing.
z2 and z3 are the two mesh grids generated from the 3D data.
[V2,D2]=eigs(z2);
P2=svd(V2);
[V1,D1] = eigs(z3);
V1=sort(V1,'descend');
P1=svd(V1);
angle = atan2(norm(cross(P1,P2)), dot(P1,P2))
Can anybody help me in this regard? Thanks in advance, Ampi.
  3 件のコメント
Roger Stafford
Roger Stafford 2013 年 6 月 1 日
If P1 and P2 are three-element vectors, your formula for the 3D inner angle between them is correct. However I have questions about the preceding code. For example, if you use the non-negative singular values coming from 'svd' for P1 and P2 element values, that restricts your angle to the range 0 to pi/2 radians (0 to 90 degrees). How do you justify that? What are the sizes of z2 and z3? If they are other than 3-by-3, you will have something other than three eigenvectors in V2 and V1 and consequently other than three singular values in both P2 and P1 vectors.
Kamal
Kamal 2013 年 11 月 23 日
編集済み: Kamal 2013 年 11 月 23 日
Dear Roger, I have one question about the princomp function. Can you help me?

サインインしてコメントする。

回答 (1 件)

Youssef  Khmou
Youssef Khmou 2013 年 6 月 2 日
hi,
is it atan or cos^-1 (acos) because the scalat product is :
V.U=||U||.||V||.cos(U^V);

カテゴリ

Help Center および File ExchangeMathematics and Optimization についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by