This morning I did 10,000 replicates of multiplying 3 small matrices using a for-loop andalso with Reduce and found that the for-loop was roughly twice as fast, so I didn't post.

> m1 <- matrix(1:9, 3)
> m2 <- matrix(1:9, 3)
> m3 <- matrix(1:9, 3)
> system.time(replicate(1000, Reduce("%*%" , list(m1,m2,m3) ) ) )
   user  system elapsed
  0.046   0.001   0.053
> mlist <- list(m1,m2,m3)
> m0 <- diag(1, nrow=3,ncol=3)
> system.time(replicate(1000, for (i in seq_along(mlist) ) {m0 <- m0 %*% mlist[[i]] } ) )
   user  system elapsed
  0.025   0.001   0.033

--
David

On Oct 29, 2009, at 6:54 PM, Gabor Grothendieck wrote:

Don't know if its any faster but try this:

 Reduce("%*%", list(M1, M2, M3), accumulate = TRUE)


On Thu, Oct 29, 2009 at 9:56 AM, Todd Schneider
<todd.w.schnei...@gmail.com> wrote:
Hi all,

I am looking for a function like cumprod() that works for matrix
multiplication.

In other words, I have matrices [M1, M2, ..., Mn], and I want to calculate [M1, M1%*%M2, M1%*%M2%*%M3, ..., M1%*%...%*%Mn] as quickly as possible. Right now I'm using a for() loop but it seems like there should be a faster
way.

Any help is appreciated!

Thanks,

Todd Schneider
todd.w.schnei...@gmail.com

       [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to