R - 当向量在两个矩阵中时,如何向量化外积和的计算?

时间:2013-03-25 22:46:36

标签: r vectorization

R - 当向量在两个矩阵中时,如何向量化外积和的计算 - XY

示例:

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,])

1 个答案:

答案 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矩阵时。