From: Marc Schwartz <marc_schwartz_at_comcast.net>

Date: Tue 23 Jan 2007 - 15:43:53 GMT

> all.equal(Res[, 1], as.vector(Res1))

**[1] TRUE
**

> all.equal(Res[, 2], as.vector(Res2))

**[1] TRUE
**
If you want the results to be a list of two matrices, you would do
something like:

R-help@stat.math.ethz.ch 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. Received on Wed Jan 24 02:56:57 2007

Date: Tue 23 Jan 2007 - 15:43:53 GMT

On Tue, 2007-01-23 at 10:21 -0500, Doran, Harold wrote:

> I have matrices stored within a list like something as follows:

*>
**> a <- list(matrix(rnorm(50), ncol=5), matrix(rnorm(50), ncol=5))
**> b <- list(matrix(rnorm(50), nrow=5), matrix(rnorm(50), nrow=5))
**>
**> I don't recall how to perform matrix multiplication on each list element
**> such that the result is a new list
**>
**> result <- list(a[[1]]%*%b[[1]], a[[2]]%*%b[[2]])
**>
**> I think I'm close with mapply(), but I'm doing something silly
**>
**> mapply('%*%', a,b)
**>
**> Thanks.
**> Harold
*

Harold,

That should basically be working. Just note that by default, each resultant matrix is put into a column (vector) format, rather than as a matrix.

Res <- mapply("%*%", a, b) Res1 <- a[[1]] %*% b[[1]] Res2 <- a[[2]] %*% b[[2]]

> str(Res)

num [1:100, 1:2] 0.1713 0.8290 -0.0864 3.5420 -1.4638 ...

- attr(*, "dimnames")=List of 2
**..$ : NULL****..$ : NULL**

> all.equal(Res[, 1], as.vector(Res1))

> all.equal(Res[, 2], as.vector(Res2))

Res <- mapply("%*%", a, b, SIMPLIFY = FALSE)

> str(Res)

List of 2

$ : num [1:10, 1:10] 0.1713 0.8290 -0.0864 3.5420 -1.4638 ...
$ : num [1:10, 1:10] 0.220 -2.048 -0.135 -2.121 -0.399 ...

> all.equal(Res1, Res[[1]])

**[1] TRUE
**

> all.equal(Res2, Res[[2]])

**[1] TRUE
**
**HTH,
**
Marc Schwartz

R-help@stat.math.ethz.ch 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. Received on Wed Jan 24 02:56:57 2007

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Tue 23 Jan 2007 - 16:30:29 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*