After a clever `lapply`, I'm left with a list of 2-dimensional matrices.

For example:

```
set.seed(1)
test <- replicate( 5,  matrix(runif(25),ncol=5), simplify=FALSE )
> test
[[1]]
          [,1]       [,2]      [,3]      [,4]      [,5]
[1,] 0.8357088 0.29589546 0.9994045 0.2862853 0.6973738
[2,] 0.2377494 0.14704832 0.0348748 0.7377974 0.6414624
[3,] 0.3539861 0.70399206 0.3383913 0.8340543 0.6439229
[4,] 0.8568854 0.10380669 0.9150638 0.3142708 0.9778534
[5,] 0.8537634 0.03372777 0.6172353 0.4925665 0.4147353

[[2]]
          [,1]      [,2]      [,3]      [,4]      [,5]
[1,] 0.1194048 0.9833502 0.9674695 0.6687715 0.1928159
[2,] 0.5260297 0.3883191 0.5150718 0.4189159 0.8967387
[3,] 0.2250734 0.2292448 0.1630703 0.3233450 0.3081196
[4,] 0.4864118 0.6232975 0.6219023 0.8352553 0.3633005
[5,] 0.3702148 0.1365402 0.9859542 0.1438170 0.7839465

[[3]]
...

```

I'd like to turn that into a 3-dimensional array:

```
set.seed(1)
replicate( 5,  matrix(runif(25),ncol=5) )    

```

Obviously, if I'm using replicate I can just turn on `simplify`, but `sapply` does not simplify the result properly, and `stack` fails utterly. `do.call(rbind,mylist)` turns it into a 2d matrix rather than 3d array.

I can do this with a loop, but I'm looking for a neat and functional way to handle it.

The closest way I've come up with is:

```
array( do.call( c, test ), dim=c(dim(test[[1]]),length(test)) )

```

But I feel like that's inelegant (because it disassembles and then reassembles the array attributes of the vectors, and needs a lot of testing to make safe (e.g. that the dimensions of each element are the same).