2013-02-20 351 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)