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

Thomas Lumley tlumley at u.washington.edu
Sat Sep 9 15:44:42 CEST 2006


On Sat, 9 Sep 2006, Anupam Tyagi wrote:

> Sophie Baillargeon <Sophie.Baillargeon <at> mat.ulaval.ca> writes:


>> Maybe I could use an "apply" or something but I 
>> can't figure out how. I would have hoped that simply doing
>> 
>> array1%*%array2
> 
> would work, but it doesn’t


>I think one of the issues is that algebra for N-Dimentional arrays are not well
>defined. Think how would you define the above operartion on two 3x3x3 arrays.


We have the tensor package to handle this.  A simple binary operator has non-uniqueness problems, so you do have to specify which margins to sum over. With two-dimensions (matrices) there are only four possible sums over one margin: x %*% y, y%*%x, crossprod(x,y), tcrossprod(x,y), but with rank-3 tensors there are a lot more options.


         -thomas

Thomas Lumley			Assoc. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle



More information about the R-help mailing list