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
Run Code Online (Sandbox Code Playgroud)
我想矢量化操作:
outer(X[1,],Y[1,]) + outer(X[2,],Y[2,]) + outer(X[3,],Y[3,])- 可能吗 ?Mayby的一般结构如下:lapply( ,FUN=outer)然后在列表中加入元素的总和?否则我必须循环outer(X[i,],Y[i,]).
这只是matrix multiplication:
t(X) %*% Y
v [,1] [,2]
# [1,] 8 3
# [2,] 11 4
Run Code Online (Sandbox Code Playgroud)
你需要一个2*2矩阵,矩阵X和Y都是3*2的维数.转置X得到2*3,当乘以3*2矩阵得到所需的2*2矩阵.