ktk.geometry.matmul#

matmul(op1, op2, /)[source]#

Matrix multiplication between series of matrices.

This function is a wrapper for numpy’s matmul function (operator @), that uses Kinetics Toolkit’s convention that the first dimension always corresponds to time, to broadcast time correctly between operands.

Parameters
  • op1 (ArrayLike) – Series of floats, vectors or matrices.

  • op2 (ArrayLike) – Series of floats, vectors or matrices.

Returns

The product, usually as a series of Nx4 or Nx4xM matrices.

Return type

np.ndarray

Example

A matrix multiplication between one matrix and a series of 3 vectors results in a series of 3 vectors.

>>> import kineticstoolkit as ktk
>>> mat_series = np.array([[[2.0, 0.0], [0.0, 1.0]]])
>>> vec_series = np.array([[4.0, 5.0], [6.0, 7.0], [8.0, 9.0]])
>>> ktk.geometry.matmul(mat_series, vec_series)
array([[ 8.,  5.],
       [12.,  7.],
       [16.,  9.]])