如何使用Python生成随机N维旋转矩阵?

Cho*_*Sun 8 python algorithm

我可以在 Numpy 或 Scipy 中找到特定函数来生成随机 N 维旋转矩阵(或正交矩阵)吗?我需要将 ND 球体上的矢量移动到该球体上的另一个随机点。

gan*_*oji 6

https://math.stackexchange.com/questions/442418/random- Generation-of-rotation-matrices

这可能会回答您的问题,至少就策略而言。据我所知,numpy 中没有标准或库函数可以完全满足您的需要。那里提出了无数的计算策略,但我更喜欢四元数方法的扩展,因为它可以保持均匀分布,这就是我假设你所追求的。

编辑:我最初的答案是“大致均匀”,而经过更多研究后,我发现四元数方法,当从均匀分布中采样时,实际上会在旋转中保持均匀分布。

  • 就编程问题而言,现在最简单、最惯用的方法是“scipy.stats.special_ortho_group.rvs(NDIMS)”(/sf/answers/3870286521/)。为了使堆栈溢出成为一个最新且有用的知识库,人们可能想要更新此答案(并重新提出问题,它很清楚,不应该被关闭)。 (2认同)