3

我正在尝试基于两个“几乎”垂直向量创建一个正交坐标系,这些向量是从医学图像中推导出来的。我有两个向量,例如:

Z=[-1.02,1.53,-1.63];
Y=[2.39,-1.39,-2.8];

它们几乎是垂直的,因为它们的内积等于 5e-4。

然后我找到他们的交叉产品来创建我的第三个基础:

X=cross(Y,Z);

甚至这第三个向量也不是完全正交于Zand Y,因为它们的内积是 -15 和 -16 的顺序,但我猜这几乎为零。为了使用这组向量作为局部坐标系的正交基,我假设它们应该几乎完全垂直。我首先认为我可以通过将向量四舍五入到更少的小数来做到这一点,但没有帮助。我想我需要找到一种方法来稍微改变我的初始向量以使它们更垂直,但我不知道该怎么做。

我将不胜感激任何建议。

4

2 回答 2

3

如上所述,格拉姆-施密特是正确的。

基本上,您想从 Y 中减去在 Z 方向上的 Y 分量(注意:您也可以对 Z 而不是 Y 进行操作)。

Y 在 Z 方向的分量由下式给出:

   dot(Y,Z)*Z/(norm(Z)^2)

(Y 到 Z 的投影)

请注意,如果 Y 与 Z 正交,则为 0。

所以:

   Y = Y - dot(Y,Z)*Z/(norm(Z)^2)

Z 保持不变。

于 2013-02-01T03:23:25.943 回答
0

let V=Y+aZ Z dot V = 0 这样你就可以解决 a 并得到 V 现在使用 V 和 Z 作为你的基础

您可能需要对向量进行归一化并使用双精度类型来获得所需的精度。

于 2013-02-01T03:16:17.643 回答