我试图在R中执行简单的标量乘法,但我遇到了一些问题。
在线性代数中,我会做以下几点:
以下是我在R:
中实现此功能的方法A <- matrix(1:4, 2, byrow = TRUE)
c <- matrix(rep(3, 4), 2)
A * c
这会产生正确的输出,但是当涉及到更大的矩阵时,创建标量矩阵 c 会很麻烦。
有更好的方法吗?
答案 0 :(得分:10)
在R
中,默认值为标量。对于矩阵乘法,请使用%*%
。 t
是转置,solve
会反过来。以下是一些例子:
a = matrix(1:4,2,2)
3 * a
c(1:2) %*% a
c(1:2) %*% t(a)
solve(a)
这是一个链接:matrix algebra in R
答案 1 :(得分:1)
使用函数drop()
将1x1变量矩阵转换为&#34; real&#34;标量。所以你可以写drop(c)*A
而不需要用值本身替换c
。