我正在尝试在 R 中执行简单的标量乘法,但遇到了一些问题。
在线性代数中我会做以下事情:
这是我在 R 中实现此功能的方法:
A <- matrix(1:4, 2, byrow = TRUE)
c <- matrix(rep(3, 4), 2)
A * c
这会产生正确的输出,但是当涉及到较大的矩阵时,创建标量矩阵 c 会很麻烦。
有更好的方法吗?
在
R
中,默认值为标量。对于矩阵乘法,请使用 %*%
。 t
是转置,solve
会给出逆矩阵。以下是一些示例:
a = matrix(1:4,2,2)
3 * a
c(1:2) %*% a
c(1:2) %*% t(a)
solve(a)
这里是一个链接:R 中的矩阵代数
使用函数
drop()
将 1x1 变量矩阵转换为“实数”标量。所以你可以写 drop(c)*A
并且不需要用值本身替换 c
。
A=c(1,2,3,4) A m=矩阵(A,nrow=2,ncol=2) 米 c=3 m*c