2014-09-21 47 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))!您在每次迭代时将数组初始化为零;这就是为什么除最后一个之外的所有矩阵都是零的原因。把这个放在之前,你开始循环,它会正常工作。附件: