Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Scipy与Matlab:三维旋转矩阵_Python 3.x_Scipy_Scipy Spatial - Fatal编程技术网

Python 3.x Scipy与Matlab:三维旋转矩阵

Python 3.x Scipy与Matlab:三维旋转矩阵,python-3.x,scipy,scipy-spatial,Python 3.x,Scipy,Scipy Spatial,我比较了用于创建三维旋转矩阵的scipy和MATLAB函数的输出,两个程序显示了不同的结果 第一项科学: 现在,matlabs功能: >> eul2rotm([pi/2 pi/2 0], 'ZYZ') ans = 0.0000 -1.0000 0.0000 0.0000 0.0000 1.0000 -1.0000 0 0.0000 >> eul2rotm([0 pi/2 pi/2], 'ZYZ')

我比较了用于创建三维旋转矩阵的scipy和MATLAB函数的输出,两个程序显示了不同的结果

第一项科学:

现在,matlabs功能:

>> eul2rotm([pi/2 pi/2 0], 'ZYZ')

ans =

    0.0000   -1.0000    0.0000
    0.0000    0.0000    1.0000
   -1.0000         0    0.0000


>> eul2rotm([0 pi/2 pi/2], 'ZYZ')

ans =

    0.0000   -0.0000    1.0000
    1.0000    0.0000         0
   -0.0000    1.0000    0.0000

最后,旋转的顺序似乎有所不同。但是哪一个是正确的呢?谢谢你的帮助


使用SciPy 1.3.1、NumPy 1.15.4和Matlab R2018b进行测试。

相同的阵列,但按顺序切换。轴的命名或方向可能有所不同。MATLAB的默认顺序为“ZYX”。使用
scipy
时,“xyz”和“xyz”之间存在差异。事实上,如果使用“ZYZ”,则
scipy
数组与MATLAB矩阵匹配。感谢您的解释。我确实忽略了
'xyz'
'xyz'
之间的区别。
>> eul2rotm([pi/2 pi/2 0], 'ZYZ')

ans =

    0.0000   -1.0000    0.0000
    0.0000    0.0000    1.0000
   -1.0000         0    0.0000


>> eul2rotm([0 pi/2 pi/2], 'ZYZ')

ans =

    0.0000   -0.0000    1.0000
    1.0000    0.0000         0
   -0.0000    1.0000    0.0000