2014-09-21 50 views
0

我對R相當新,而且我無法繞過for循環。我開發了一個基於循環的大型馬爾可夫模型(現在我知道它不是最有效的方式,但現在沒時間改變它)。該模型的最終結果是一個參數j的每個值的一對矩陣。我試圖做的一個示例是:For循環只是將最終值保存在一個數組中

for (j in 1:10){ 
    x<-3:13 
    y<-rep(x[j],10) 
    a<-matrix(y,5,2) 
    y<-rep(2,10) 
    b<-matrix(y,5,2) 
    outcome<-array(0,dim=c(5,2,10)) 
    outcome[,,j]<-a*b 

} 
outcome 

即:在數組的第三維中保存每個循環的輸出。但正如我所看到的,它只保存數組最後一個維度中的最後一個循環。這個模型要複雜得多,所以我不能真正改變基本結構,只能找到一種節省輸出的方法。有什麼想法嗎? 希望它是明確的,任何幫助將非常感激!

+1

PS。堆棧片段尚未運行R代碼。 – 2014-09-21 19:48:59

回答

2

從循環中刪除outcome<-array(0,dim=c(5,2,10))!您在每次迭代時將數組初始化爲零;這就是爲什麼除最後一個之外的所有矩陣都是零的原因。把這個放在之前,你開始循環,它會正常工作。附件: