scipy.spatial.transform.Rotation.

concatenate#

static Rotation.concatenate(rotations)[source]#

将一系列 Rotation 对象连接成一个单一对象。

如果想例如计算一组旋转的平均值,并且需要将它们打包到一个单一对象中进行计算,这将非常有用。

参数:
rotations一系列 Rotation 对象

要连接的旋转。如果传入单个 Rotation 对象,则返回其副本。

返回:
concatenatedRotation 实例

连接后的旋转。

附注

在版本 1.8.0 中新增。

数组 API 标准支持

concatenate 对 Python Array API Standard 兼容的后端具有实验性支持,除了 NumPy 之外。请考虑通过设置环境变量 SCIPY_ARRAY_API=1 并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。支持以下后端和设备(或其他功能)的组合。

CPU

GPU

NumPy

不适用

CuPy

不适用

PyTorch

JAX

Dask

不适用

有关更多信息,请参阅 对数组 API 标准的支持

示例

>>> from scipy.spatial.transform import Rotation as R
>>> r1 = R.from_rotvec([0, 0, 1])
>>> r2 = R.from_rotvec([0, 0, 2])
>>> rc = R.concatenate([r1, r2])
>>> rc.as_rotvec()
array([[0., 0., 1.],
       [0., 0., 2.]])
>>> rc.mean().as_rotvec()
array([0., 0., 1.5])

连接一个分割的旋转可以恢复原始对象。

>>> rs = [r for r in rc]
>>> R.concatenate(rs).as_rotvec()
array([[0., 0., 1.],
       [0., 0., 2.]])

请注意,通过在初始化期间传入单个包含数据的列表,而不是通过连接来创建所需的旋转,可能更简单。

>>> R.from_rotvec([[0, 0, 1], [0, 0, 2]]).as_rotvec()
array([[0., 0., 1.],
       [0., 0., 2.]])