1

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

4

1 回答 1

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 矩阵。

于 2013-03-25T22:53:46.527 回答