在尝试回答another SO question时,如何计算尺寸的欧拉角的问题> 3出现了。 RSpincalc
包具有简单的DCM2EA
函数,用于将3d旋转矩阵转换为Euler或Tait-Bryan角度,但这仅处理3维的特定情况。 wikipedia page on Euler angles简要讨论了将欧拉角扩展到更高维度的问题,并引用了Italian paper,这显然将该方法推广到更多维度。不幸的是,我的意大利语和我的数学都不能拿到那篇论文并创建一个可用的R函数。
至少可以说,this answer中使用的当前方法有点麻烦。我使用Ryacas
包创建一个符号矩阵,它是任意数量维度的一系列旋转的复合。然后可以针对已知的旋转矩阵迭代地求解,以找到所需的角度。它有效,但一旦维数为5或更多,它就会越来越慢。
通过实施Italian paper中的方法或其他方式,是否有更好的方法来实现这一目标?
答案 0 :(得分:1)
1972年有一篇有趣的论文here,它解决了在给定N维正交矩阵的情况下计算N维欧拉角的问题(我假设你就是这样)。我浏览了纸张,它给出了你似乎需要的公式:
我没有尝试重新推导和验证他们的方程式,但他们给出了明确的公式,因此您可以为低维度实现它们,您已经有了答案,看看它们是否一致。