numpy.matvec — NumPy v2.6.dev0 Manual

numpy.matvec(x1, x2, /, out=None, *, casting='same_kind', order='K', dtype=None, subok=True[, signature, axes, axis])=<ufunc'matvec'>

#

Matrix-vector dot product of two arrays.

Given a matrix (or stack of matrices) \(\mathbf{A}\) in x1 and a vector (or stack of vectors) \(\mathbf{v}\) in x2, the matrix-vector product is defined as:

\[\mathbf{A} \cdot \mathbf{v} = \sum_{j=0}^{n-1} A_{ij} v_j\]

where the sum is over the last dimensions in x1 and x2 (unless axes is specified). (For a matrix-vector product with the vector conjugated, use np.vecmat(x2,x1.mT).)

Added in version 2.2.0.

Parameters:x1, x2array_likeInput arrays, scalars not allowed.

outndarray, optionalA location into which the result is stored. If provided, it must have the broadcasted shape of x1 and x2 with the summation axis removed. If not provided or None, a freshly-allocated array is used.

**kwargsFor other keyword-only arguments, see the

ufunc docs

.

Returns:yndarrayThe matrix-vector product of the inputs.

Raises:ValueErrorIf the last dimensions of x1 and x2 are not the same size.

If a scalar value is passed in.

See also

vecdot

Vector-vector product.

vecmat

Vector-matrix product.

matmul

Matrix-matrix product.

einsum

Einstein summation convention.

Examples

Rotate a set of vectors from Y to X along Z.

>>> a=np.array([[0.,1.,0.],... [-1.,0.,0.],... [0.,0.,1.]])>>> v=np.array([[1.,0.,0.],... [0.,1.,0.],... [0.,0.,1.],... [0.,6.,8.]])>>> np.matvec(a,v)array([[ 0., -1., 0.], [ 1., 0., 0.], [ 0., 0., 1.], [ 6., 0., 8.]])