我对R很新,我无法绕过for循环。我已经开发了一个基于循环的大马尔可夫模型(现在我知道它不是最有效的方式,但现在没有时间改变它)。模型的最终结果是一个参数j的每个值的一对矩阵。我试图做的一个例子是
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
即:在每个循环的输出中保存数组的第三维。但是我认为它只保存了数组最后一个维度的最后一个循环。该模型要复杂得多,因此我无法真正改变基本结构,只能找到一种节省输出的方法。有什么想法吗? 希望它清楚,任何帮助都会非常感激!
答案 0 :(得分:2)
从循环中删除outcome<-array(0,dim=c(5,2,10))
!您在每次迭代时将数组初始化为零;这就是为什么除了最后一个矩阵之外的所有矩阵都是零的原因。 之前启动循环,它将正常工作。