AとBの2 つの 3 次元配列があり、それぞれ 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値によって重み付けされる行列を作成することです...うまく説明できませんが、たとえば、最初の要素は次のとおりです。
[(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])
}
}