R - 当向量在两个矩阵中时,如何向量化外积和的计算 - X
和Y
?
示例:
X = cbind(1:3, 2:4)
Y = cbind(0:2, c(0,0,1))
> X
[,1] [,2]
[1,] 1 2
[2,] 2 3
[3,] 3 4
> Y
[,1] [,2]
[1,] 0 0
[2,] 1 0
[3,] 2 1
> outer(X[1,],Y[1,]) + outer(X[2,],Y[2,]) + outer(X[3,],Y[3,])
[,1] [,2]
[1,] 8 3
[2,] 11 4
我想矢量化操作:
outer(X[1,],Y[1,]) + outer(X[2,],Y[2,]) + outer(X[3,],Y[3,])
- 有可能吗? Mayby具有一般构造的东西,如:lapply( ,FUN=outer)
,然后在列表中获取元素的总和?否则我必须循环outer(X[i,],Y[i,])
。
答案 0 :(得分:6)
这只是matrix multiplication
:
t(X) %*% Y
v [,1] [,2]
# [1,] 8 3
# [2,] 11 4
您需要一个2 * 2矩阵,矩阵X和Y都是3 * 2的维数。转置X得到2 * 3,当乘以3 * 2矩阵得到所需的2 * 2矩阵时。