2013-02-20 183 views
5

我想创建一个矩阵数组,我首先创建一个k值为k的矩阵阵列,然后在k上循环并更新数组中的每个k矩阵。R创建矩阵阵列

有什么建议吗?

回答

8

我可能错过了点,但不会:

k = 2; n=3; m = 4 
array(NA, c(n,m,k)) 

, , 1 

    [,1] [,2] [,3] [,4] 
[1,] NA NA NA NA 
[2,] NA NA NA NA 
[3,] NA NA NA NA 

, , 2 

    [,1] [,2] [,3] [,4] 
[1,] NA NA NA NA 
[2,] NA NA NA NA 
[3,] NA NA NA NA 

给你想要的是什么?然后你可以正常循环:

R> for(k in 1:2){print(a[,,k])} 
+0

或者对于“简单”功能,甚至不需要循环,这要归功于R的矢量化。 – 2013-02-20 21:49:01

2

小心术语:-)。正如CSGillespie指出的那样,您可以在R中定义一个N-rank数组。或者,您可以创建一个list变量,其中每个变量都包含一个矩阵。后者的优点是矩阵可以具有不同的尺寸。缺点是创建初始状态可能会更痛苦。

E.g.

mat1 <- matrix(NA, 3,5) 
mat2 <- matrix(NA, 4,7) 
matlist <- list(mat1=mat1,mat2=mat2)