角度は次を使用して見つけることができます
angle = atan2(norm(cross(a,b)),dot(a,b))
[四象限逆正接を使用]; しかし、私の場合、外積部分は 100x100x100 の各速度成分のサイズとして機能しません。
Matlab の Concatenate 関数を使用すると、Velocity1 と Velocity2 の 3 つのコンポーネントを結合して、サイズ NxNxNx3 の行列を作成できます。ここで、V1(u1,v1, w1) と V2(u2,v2, w2) の各トリプレット/組み合わせについて、外積 (C と呼びます) を 4 次元で取得でき、その結果、サイズ NxNxNx3 の行列が得られます。上記の式では、外積の結果の大きさ/ノルムを得るには、C と C 自体の内積を 4 次元で取り、それを平方根して大きさを求め、そのサイズを NxNxN に戻す必要があります。最終的に次のように実行できます--
A = cat(4,u1,v1,w1); % Combine the three components in the 4th dimension
B = cat(4,u2,v2,w2); % Ditto
C = cross(A,B,4); % Take the cross products there.
ang = atan2(sqrt(dot(C,C,4)),dot(A,B,4));
このソリューションは、Roger Stafford 氏 (Matlab Web サイト) によって提供され、すべての功績は彼に帰します。
答えはここにあります..
http://fr.mathworks.com/matlabcentral/answers/281635-cross-product-multi-dim-data