【问题标题】:For loop just saves the final value in an arrayFor循环只是将最终值保存在数组中
【发布时间】:2014-09-21 11:23:25
【问题描述】:

我对 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

即:将每个循环的输出保存在数组的第三维中。但正如我所见,它只保存了数组最后一维中的最后一个循环。该模型要复杂得多,因此我无法真正更改基本结构,只能找到一种保存其输出的方法。有什么想法吗? 希望它很清楚,任何帮助将不胜感激!

【问题讨论】:

  • 附言。 Stack sn-ps 尚未针对 R 代码运行。

标签: arrays r for-loop


【解决方案1】:

从循环中删除outcome&lt;-array(0,dim=c(5,2,10))!您在每次迭代时将数组初始化为零;这就是为什么除了最后一个矩阵之外的所有矩阵都为零的原因。把它放在之前你开始循环,它会正常工作。

【讨论】:

    猜你喜欢
    • 2021-05-11
    • 1970-01-01
    • 2021-09-16
    • 2021-07-28
    • 2014-04-30
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多