两个坐标系之间的3D变换矩阵matlab

3D Tranformation matrix between two coordinate systems matlab

我有一个坐标系A

例:系统A的3个主向量方向为:

e0=  [0.3898  -0.0910   0.9164]    
e1=  [0.6392   0.7431  -0.1981]
e2=  [-0.6629  0.6630   0.3478]

而且,我有一个包含三个单位向量的笛卡尔坐标系 B:

   nx=[1 0 0];  
   ny=[0 1 0]; 
   nz=[0 0 1]

如何找到两个坐标系 A 和 B 之间的变换矩阵 C?

你的基础向量已经形成了一个旋转矩阵,它提供了基础 A 中的点到规范基础的直接转换(例如,基础 A 中的 [1,0,0] 对应于规范坐标中的 e0)。

A=[e0' e1' e2'];
Pcan=(A*P')';

或者,使用转置规则

Pcan=P*A';