3
我有一個二維矩陣,我想複製10次以創建一個三維數組,其中數組的每個'切片'是一個相同的副本二維數組。複製2維矩陣來創建一個3維數組(在R中)
所以,如果我的二維數組分別是:
a <- matrix(c(1:4),nrow=2)
> a
[,1] [,2]
[1,] 1 3
[2,] 2 4
我想作爲輸出像這樣的數組:
, , 1
[,1] [,2]
[1,] 1 2
[2,] 3 4
, , 2
[,1] [,2]
[1,] 1 2
[2,] 3 4
....
, , 10
[,1] [,2]
[1,] 1 2
[2,] 3 4
我看到這個頁面(Duplicate matrix to form list),其中, OP正在尋找複製矩陣到一個列表,我改編然後轉換爲一個列表:
b<-rep(list(a), 10) # from original post
array(unlist(b), dim = c(nrow(b[[1]]), ncol(b[[1]]), length(b))) # line I added
This工作正常,但它有點迂迴 - 我想知道是否有辦法在一行內完成此操作,而無需通過創建列表。
我試圖施加在與rbind到多個行粘結在一起做的方式一個do.call的邏輯,但使用代替abind -
do.call(abind,as.list(c(a,a,a,a,a,a,a,a,a,a)))
但輸出是一個長向量等不我在找什麼。
任何幫助,非常感謝!
修改你的方法一點,你可以使用'陣列(A,C(點心(一),10))'以循環 –
也是一個好主意的好處,謝謝! –