Re: [R] an array of matrices Thanks for the replies Jim and Petr! I decided to do it a slightly different way. Using Jim's method, the matrices needed to be created before the array, whereas I needed the array to be allocated first, and then filled.  Here's how I did it: This command creates a blank array of lists > y=array(list(),c(i,j,k)) Then each item can be accessed (and assigned) using > y[[i,j,k]] For example: > for (i in 1:2) +   for (j in 1:2) +     for (k in 1:2) +       y[[i,j,k]] <- diag(i+j+k) > y , , 1      [,1]       [,2]       [1,] Numeric,9  Numeric,16 [2,] Numeric,16 Numeric,25 , , 2      [,1]       [,2]       [1,] Numeric,16 Numeric,25 [2,] Numeric,25 Numeric,36 > y[[1,1,1]]      [,1] [,2] [,3] [1,]    1    0    0 [2,]    0    1    0 [3,]    0    0    1 > y[[2,1,2]]      [,1] [,2] [,3] [,4] [,5] [1,]    1    0    0    0    0 [2,]    0    1    0    0    0 [3,]    0    0    1    0    0 [4,]    0    0    0    1    0 [5,]    0    0    0    0    1 Thanks again for the help! -Scott ---- Original message ---- >Date: Mon, 21 May 2007 04:57:40 -0400 >From: "jim holtman"    >Subject: Re: [R] an array of matrices   >To: "Scott Hyde"  >Cc: r-help@stat.math.ethz.ch > >   Create a matrix of list: >     >   > A = matrix(1:4,2,2) >   > B = matrix(1:25,5,5) >   > C = matrix(1,3,3) >   > D = matrix(1,4,4) >   > x <- list(A,B,C,D) >   > dim(x) <- c(2,2) >   > x[[1,1]] >        [,1] [,2] >   [1,]    1    3 >   [2,]    2    4 >   > x[[2,2]] >        [,1] [,2] [,3] [,4] >   [1,]    1    1    1    1 >   [2,]    1    1    1    1 >   [3,]    1    1    1    1 >   [4,]    1    1    1    1 > >     >   On 5/21/07, Scott Hyde  wrote: > >     I'd like to have a three dimensional array of >     matrices.   I thought I could construct a five >     dimensional array to have the three dimensional >     array of matrices.  However, not all of the >     matrices in the array have the same dimensions, >     which seems to mean I can't use a five dimensional >     array. > >     What I'd like is this: > >     A = matrix(1:4,2,2) >     B = matrix(1:25,5,5) >     C = matrix(1,3,3) >     D = matrix(1,4,4) > >     I'd like to construct an array for which, if I >     type F[1,1], it returns matrix A, type F[1,2] and >     it returns B, type F[2,1] and it returns C, or >     type F[2,2] and it returns D. > >     Essentially, I'd like to be able to access them >     like they were elements of a matrix.  Although >     this example is only a two dimensional array of >     matrices, I'd like it to also work with three >     dimensions also. > >     The only thing I thought of to try was to make an >     array of lists and store the matrices inside of an >     array of lists (where each matrix is stored as a >     list with one item). > >     Any suggestions? > >     -Scott > >     ______________________________________________ >     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. > >   -- >   Jim Holtman >   Cincinnati, OH >   +1 513 646 9390 > >   What is the problem you are trying to solve? ______________________________________________ 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.