Умножить матрицы в списке
Я хотел бы умножить несколько матриц списка. Я знаю, что это работает с одной матрицей:
x1 <- c(2,2,2,3,1,2,4,6,1,2,4)
y1 <- c(5,4,3,3,4,2,1,6,4,2,3)
x2 <- c(8,2,7,3,1,2,2,2,1,2,6)
y2 <- c(1,3,3,3,1,2,4,3,1,2,8)
x3 <- c(1,0,1,0,0,0,1,1,1,1,1)
y3 <- c(1,0,0,0,0,0,1,1,0,1,0)
x4 <- c(1,0,1,0,0,0,0,1,0,1,0)
y4 <- c(1,0,1,0,0,0,1,1,1,1,1)
mat1 <- cbind(x1,y1,x2,y2); mat1
mat2 <- cbind(x3,y3,x4,y4); mat2
mat3 <- mat1*mat2; mat3
Результат, как я и хотел, когда вторая матрица имела ноль, тогда значение в результате было установлено равным нулю, в противном случае результат оставался прежним:
x1 y1 x2 y2
[1,] 2 5 8 1
[2,] 0 0 0 0
[3,] 2 0 7 3
[4,] 0 0 0 0
[5,] 0 0 0 0
[6,] 0 0 0 0
[7,] 4 1 0 4
[8,] 6 6 2 3
[9,] 1 0 0 1
[10,] 2 2 2 2
[11,] 4 0 0 8
Теперь рассмотрим список с несколькими матрицами, оба списка имеют одинаковые матрицы, одно из значений, другое содержит 1/0, но точно такого же размера. Как я могу получить тот же результат, что и выше, например, умножение обеих первых матриц, затем обеих вторых матриц и так далее. результат, как указано выше, будет для пары первых матриц.