[R] Multiple matrix multiplication with two 3-dimensional arrays

Sophie Baillargeon Sophie.Baillargeon at mat.ulaval.ca
Fri Sep 8 15:21:53 CEST 2006


I need to do several matrix multiplications with 
the corresponding matrices forming two 
3-dimentional arrays. To illustrate my problem, 
let's say I have the following 3-dimensional arrays:

array1 <- array(1:30,dim=c(3,2,5))
array2 <- array(1:20,dim=c(2,2,5))

I know that I can get what I want with the following computation :

result <- array(dim=c(dim(array1)[1], dim(array2)[2], dim(array1)[3]))
for (i in 1: dim(array1)[3])
             result[,,i] <- array1[,,i]%*%array2[,,i]

My question is :
Is there a more efficient way to do that computation, i.e. without a loop?

Maybe I could use an "apply" or something but I 
can't figure out how. I would have hoped that simply doing


would work, but it doesn’t

Thank you very much!

Sophie Baillargeon


Sophie Baillargeon, M.Sc.

Professionnelle de recherche en statistique
Département de mathématiques et de statistique
Université Laval
téléphone: (418) 656-2131 poste 2333
courriel: Sophie.Baillargeon at mat.ulaval.ca

More information about the R-help mailing list