【发布时间】:2012-09-12 02:25:34
【问题描述】:
我有两个 3-D 数组,A 和 B,每个 2 x 3 x 3。下面显示的示例(这将有助于阐明我想要乘)。
A1 A2 A3 B1 B2 B3
A4 A5 A6 B4 B5 B6
A7 A8 A9 B7 B8 B9
A10 A11 A12 B10 B11 B12
A13 A14 A15 B13 B14 B15
A16 A17 A18 B16 B17 B18
我想要做的是创建一个矩阵,其中 3 个 A 矩阵被平均,并且某个位置的值由相应的 B 值加权...I不好解释,但是比如第一个元素是:
[(A1*B1)+(A7*B7)+(A13*B13)] / sum(B1,B7,B13).
另一个元素是:
[(A5*B5)+(A11*B11)+(A17*B17)] / sum(B5,B11,B17).
等等...结果是一个 2 x 3 矩阵。我一直在玩嵌套 for 循环的不同组合,下面显示了一个示例,但我还没有弄清楚如何正确地做到这一点......感谢帮助。
for (j in 1:2){
for (k in 1:3){
ans[j*k]=sum(A[j,k,1:3]*B[j,k,1:3])/sum(B[j,k,1:3])
}
}
【问题讨论】:
标签: arrays r linear-algebra vectorization matrix-multiplication