我有兩個矩陣,我想將它們放在一起,使得得到的矩陣的每個值都是前兩個矩陣中相同列的滾動和積。滾動積和列
x<-matrix(seq(1:30), ncol=3)
x
[,1] [,2] [,3]
[1,] 1 11 21
[2,] 2 12 22
[3,] 3 13 23
[4,] 4 14 24
[5,] 5 15 25
[6,] 6 16 26
[7,] 7 17 27
[8,] 8 18 28
[9,] 9 19 29
[10,] 10 20 30
y<-matrix(rep(seq(1:3), 4), ncol=3)/10
y
[,1] [,2] [,3]
[1,] 0.1 0.2 0.3
[2,] 0.2 0.3 0.1
[3,] 0.3 0.1 0.2
[4,] 0.1 0.2 0.3
所以結果看起來像:
output[2, 2] = 12 * 0.2 + 13 * 0.3 + 14 * 0.1 + 15 * 0.2
是否有人知道如何做到這一點:
1.8 9.9 20.3
2.5 10.7 21.2
3.2 11.5 22.1
3.9 12.3 23
4.6 13.1 23.9
5.3 13.9 24.8
6 14.7 25.7
在示例輸出上面的10.7
值作爲計算?我一直在玩RcppRoll
包,但無法得到正確的答案。解決方案越快越好,因爲這是需要進行多次迭代的優化的一部分。
在我花時間想想你們已經知道的一些有代表性的數據。所以,要清楚的是,@ zx8754提供了更快的示例。 – user3390169