У меня есть две матрицы, которые я хотел бы умножить, чтобы каждое значение результирующей матрицы представляло собой скользящее суммарное произведение тех же столбцов в первых двух матрицах.Прокачка суммы продукта по столбцу
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
, так что результат будет выглядеть следующим образом:
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
рассчитывается как:
output[2, 2] = 12 * 0.2 + 13 * 0.3 + 14 * 0.1 + 15 * 0.2
Кто-нибудь знает, как сделать это? Я играю с пакетом RcppRoll
, но не могу получить правильный ответ. Чем быстрее решение, тем лучше, поскольку это часть оптимизации, которая займет много итераций.
В то время, когда мне потребовалось придумайте некоторые репрезентативные данные, которые вы, ребята, уже поняли. Итак, чтобы быть понятным, @ zx8754 предоставил более быстрый пример. – user3390169