【发布时间】:2021-03-29 23:24:26
【问题描述】:
我有一个从一个基础到另一个基础的旋转矩阵:
Rot = [0.1227 0.0269 -0.9921;...
0.8635 -0.4956 0.0934;...
0.4892 0.8681 0.0840];
我使用 MATLAB rotm2eul 函数来获取 'ZYZ' 约定中的欧拉角:
eulZYZ = rotm2eul(Rot,"ZYZ")
这是 -0.0938 -1.4867 -1.0577。如果我使用反函数eul2rotm:
RotMATLAB = eul2rotm(eulZYZ,"ZYZ");
结果与Rot不同(第三列除外):
RotMATLAB =
-0.0406 0.1189 -0.9921
-0.8712 0.4819 0.0934
0.4892 0.8681 0.0840
发生了什么事?我认为一旦你指定了“ZYZ”,就只存在一个旋转。
【问题讨论】:
-
我不相信
rotm2eul是 Octave 或任何我知道的包的一部分。是否有理由将其标记为 Octave?如果在哪里可以买到?在这种情况下它的行为是否相同? -
这是我幼稚的假设,删除它,谢谢。
标签: matlab math rotational-matrices