numpy.matvec#
- numpy.matvec(x1, x2, /, out=None, *, casting='same_kind', order='K', dtype=None, subok=True[, signature, axes, axis]) = <ufunc 'matvec'>#
两个数组的矩阵向量点积。
给定
x1
中的矩阵(或矩阵堆栈)\(\mathbf{A}\) 和x2
中的向量(或向量堆栈)\(\mathbf{v}\),矩阵向量积定义为\[\mathbf{A} \cdot \mathbf{b} = \sum_{j=0}^{n-1} A_{ij} v_j\]其中求和是在
x1
和x2
的最后维度上进行的(除非指定了axes
)。(对于向量共轭的矩阵向量积,请使用np.vecmat(x2, x1.mT)
。)版本 2.2.0 中的新功能。
- 参数:
- x1, x2array_like
输入数组,不允许标量。
- outndarray, 可选
存储结果的位置。如果提供,它必须具有
x1
和x2
的广播形状,并去除求和轴。如果不提供或为 None,则使用新分配的数组。- **kwargs
对于其他关键字参数,请参见ufunc 文档。
- 返回:
- yndarray
输入的矩阵向量积。
- 引发:
- ValueError
如果
x1
和x2
的最后维度大小不同。如果传入标量值。
示例
将一组向量从 Y 旋转到沿 Z 的 X。
>>> 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.]])