当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R matmult 矩阵乘法


R语言 matmult 位于 base 包(package)。

说明

将两个矩阵相乘(如果它们一致)。如果一个参数是向量,它将被提升为行或列矩阵以使两个参数一致。如果两者都是相同长度的向量,它将返回内积(作为矩阵)。

用法

x %*% y

参数

x , y

数值或复数矩阵或向量。

细节

当向量提升为矩阵时,其名称不会提升为行或列名称,与 as.matrix 不同。

当两个选择之一允许 xy 获得一致的维度时,就会将向量提升为 1 行或 1 列矩阵。

该运算符是一个通用函数:可以单独为其编写方法,也可以通过 matOps 组通用函数编写方法;它分派到 S3 和 S4 方法。需要为带有两个名为 xy 的参数的函数编写方法。

双矩阵或复矩阵乘积。使用drop 删除只有一层的维度。

注意

NaN/Inf 值的传播、精度和矩阵乘积的性能可以通过 options("matprod") 控制。

例子

x <- 1:4
(z <- x %*% x)    # scalar ("inner") product (1 x 1 matrix)
drop(z)             # as scalar

y <- diag(x)
z <- matrix(1:12, ncol = 3, nrow = 4)
y %*% z
y %*% x
x %*% z

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

对于矩阵叉积,crossprod()tcrossprod() 通常更可取。 matrixArithmeticdiag

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Matrix Multiplication。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。