本文簡要介紹 python 語言中 scipy.spatial.transform.Rotation.from_matrix
的用法。
用法:
classmethod Rotation.from_matrix(cls, matrix)#
從旋轉矩陣初始化。
3 維旋轉可以用 3 x 3 適當的正交矩陣表示 [1]。如果輸入不是正確正交的,則使用 [2] 中說明的方法創建近似值。
- matrix: 數組,形狀 (N, 3, 3) 或 (3, 3)
單個矩陣或矩陣堆棧,其中
matrix[i]
是i-th 矩陣。
- rotation:
Rotation
實例 包含由旋轉矩陣表示的旋轉的對象。
- rotation:
參數 ::
返回 ::
注意:
此函數之前稱為from_dcm。
參考:
[2]F. Landis Markley,“旋轉矩陣中的四元數單位”,製導、控製和動力學雜誌,第一卷。 31.2,第 440-442 頁,2008 年。
例子:
>>> from scipy.spatial.transform import Rotation as R >>> import numpy as np
初始化單個旋轉:
>>> r = R.from_matrix([ ... [0, -1, 0], ... [1, 0, 0], ... [0, 0, 1]]) >>> r.as_matrix().shape (3, 3)
在單個對象中初始化多個旋轉:
>>> r = R.from_matrix([ ... [ ... [0, -1, 0], ... [1, 0, 0], ... [0, 0, 1], ... ], ... [ ... [1, 0, 0], ... [0, 0, -1], ... [0, 1, 0], ... ]]) >>> r.as_matrix().shape (2, 3, 3)
如果輸入矩陣不是特殊正交(行列式等於 +1 的正交),則存儲特殊正交估計:
>>> a = np.array([ ... [0, -0.5, 0], ... [0.5, 0, 0], ... [0, 0, 0.5]]) >>> np.linalg.det(a) 0.12500000000000003 >>> r = R.from_matrix(a) >>> matrix = r.as_matrix() >>> matrix array([[-0.38461538, -0.92307692, 0. ], [ 0.92307692, -0.38461538, 0. ], [ 0. , 0. , 1. ]]) >>> np.linalg.det(matrix) 1.0000000000000002
也可以有一個包含單個旋轉的堆棧:
>>> r = R.from_matrix([[ ... [0, -1, 0], ... [1, 0, 0], ... [0, 0, 1]]]) >>> r.as_matrix() array([[[ 0., -1., 0.], [ 1., 0., 0.], [ 0., 0., 1.]]]) >>> r.as_matrix().shape (1, 3, 3)
相關用法
- Python SciPy Rotation.from_mrp用法及代碼示例
- Python SciPy Rotation.from_quat用法及代碼示例
- Python SciPy Rotation.from_rotvec用法及代碼示例
- Python SciPy Rotation.from_euler用法及代碼示例
- Python SciPy Rotation.__pow__用法及代碼示例
- Python SciPy Rotation.magnitude用法及代碼示例
- Python SciPy Rotation.as_matrix用法及代碼示例
- Python SciPy Rotation.as_euler用法及代碼示例
- Python SciPy Rotation.approx_equal用法及代碼示例
- Python SciPy Rotation.as_mrp用法及代碼示例
- Python SciPy Rotation.__getitem__用法及代碼示例
- Python SciPy Rotation.as_quat用法及代碼示例
- Python SciPy Rotation.__mul__用法及代碼示例
- Python SciPy Rotation.as_rotvec用法及代碼示例
- Python SciPy Rotation.apply用法及代碼示例
- Python SciPy Rotation.align_vectors用法及代碼示例
- Python SciPy Rotation.inv用法及代碼示例
- Python SciPy Rotation.random用法及代碼示例
- Python SciPy Rotation.mean用法及代碼示例
- Python SciPy RealData.set_meta用法及代碼示例
- Python SciPy RectBivariateSpline.__call__用法及代碼示例
- Python SciPy RectSphereBivariateSpline.ev用法及代碼示例
- Python SciPy RegularGridInterpolator.__call__用法及代碼示例
- Python SciPy RectSphereBivariateSpline.__call__用法及代碼示例
- Python SciPy RectBivariateSpline.ev用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.spatial.transform.Rotation.from_matrix。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。