scipy.spatial.transform.RigidTransform.

as_matrix#

RigidTransform.as_matrix()[source]#

Return a copy of the matrix representation of the transform.

4x4 rigid transformation matrices are of the form:

[       tx]
[   R   ty]
[       tz]
[ 0 0 0  1]

where R is a 3x3 orthonormal rotation matrix and t = [tx, ty, tz] is a 3x1 translation vector.

Returns:
matrixnumpy.ndarray, shape (…, 4, 4)

Transformation matrices with the same leading dimensions as the transform.

Notes

Array API Standard Support

as_matrix has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variable SCIPY_ARRAY_API=1 and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.

Library

CPU

GPU

NumPy

n/a

CuPy

n/a

PyTorch

JAX

Dask

n/a

See Support for the array API standard for more information.

Examples

>>> from scipy.spatial.transform import RigidTransform as Tf
>>> from scipy.spatial.transform import Rotation as R
>>> import numpy as np

A transformation matrix is a 4x4 matrix formed from a 3x3 rotation matrix and a 3x1 translation vector:

>>> t = np.array([2, 3, 4])
>>> r = R.from_matrix([[0, 0, 1],
...                    [1, 0, 0],
...                    [0, 1, 0]])
>>> tf = Tf.from_components(t, r)
>>> tf.as_matrix()
array([[ 0., 0., 1., 2.],
       [ 1., 0., 0., 3.],
       [ 0., 1., 0., 4.],
       [ 0., 0., 0., 1.]])
>>> Tf.identity(2).as_matrix()
array([[[1., 0., 0., 0.],
        [0., 1., 0., 0.],
        [0., 0., 1., 0.],
        [0., 0., 0., 1.]],
       [[1., 0., 0., 0.],
        [0., 1., 0., 0.],
        [0., 0., 1., 0.],
        [0., 0., 0., 1.]]])