I need to create an accumulation index across columns in my data. I set up the problem as follows

```
#accumulation function
mat1 <- matrix(nrow=16, ncol =4)
mat1[1,] <- c(1,1,1,1)
mat1[2:16,] <- 1+rnorm(60,0,0.1)

   [,1]      [,2]      [,3]      [,4]
 [1,] 1.0000000 1.0000000 1.0000000 1.0000000
 [2,] 0.9120755 0.9345682 0.8533162 0.8737582
 [3,] 0.7838427 0.9691806 0.8216284 0.9863669
 [4,] 0.9095204 1.1906031 1.0253083 1.0700338
 [5,] 1.0202524 0.9974672 1.1348315 1.1115018
 [6,] 0.9456184 1.1250529 1.0348011 0.9323336
 [7,] 1.0053195 0.9917475 1.0178855 1.0880626
 [8,] 0.9550709 0.9107060 0.8876688 0.9060996
 [9,] 1.0728177 1.0559643 0.9161789 0.9711522
[10,] 0.9579642 1.0082560 0.9833227 0.9306639
[11,] 1.0044883 1.1323498 1.0388025 0.8926033
[12,] 0.8777846 0.9940302 0.8314166 0.8479962
[13,] 1.1042297 0.9767410 0.9355374 0.8859680
[14,] 1.1245737 0.8291948 1.0491585 0.9887672
[15,] 0.9687700 0.9915095 0.8962534 1.0220163
[16,] 0.9432597 1.0310273 0.9288159 1.0838243

```

The desired output takes the product of entries in each column, up to each row number.

therefore:

```
mat2 <- matrix(nrow=16, ncol=4)
mat2[1,] <- c(1,1,1,1)
mat2[2,] <- mat1[1,]*mat1[2,]
mat2[3,] <-mat1[1,]*mat1[2,]*mat1[3,]
mat2[4,] <-mat1[1,]*mat1[2,]*mat1[3,]*mat1[4,]

```

and so on and so forth up to row 16. The idea is to accumulate (take the product) of all entries in mat1 up to a particular row number. So row1 of mat2 = row 1 of mat 1. row 2 of mat 2, is equal to row1 mat1 \*row2 mat1. row3 of mat2 is equal to row1 of mat1 \*row2 of mat1, \*row3 of mat1. This process continues up to row 16.

I need to write a function able to do this calculation for matrices in a list all of the same size.