I would like to multiply multiple matrices of a list. I know that this works with a single matrix:
x1 <- c(2,2,2,3,1,2,4,6,1,2,4)
y1 <- c(5,4,3,3,
So generically, how do you multiply corresponding members of two lists? Suppose the matrices with values are in list1
and those with 0/1 are in list2
, then one way to do it is with lapply
answer <- lapply(seq_along(list1),FUN=function(i) list1[[i]]*list2[[i]])
Your resulting matrices will be the elements of answer
.
Map
is your friend for these sorts of operations. First, let's make some example lists using your data:
l1 <- replicate(3,mat1,simplify=FALSE)
l2 <- replicate(3,mat2,simplify=FALSE)
Now, it's as simple as:
Map("*",l1,l2)