繁体   English   中英

在R中的循环中替换矩阵中的行

[英]Replacing rows in a matrix in a loop in R

我试图在R中编写一个简单的马尔可夫模型。为了生成马尔可夫跟踪,我创建了一个空矩阵,其中ncol =状态数,nrow =循环数。 我正在使用循环编写函数,用每个循环替换矩阵的每一行,但是循环使我失败了。

Rounds<-function(cycles,TransMatrix){
  for (i in 1:nrow(MarkovTrace)){
    MarkovTrace[i+1,]<-as.vector(MarkovTrace[i,]%*%TransMatrix)
  }
}

有什么想法为什么呢? 不过,我可以在循环外部手动执行此操作。

MarkovTrace[2,]<-as.vector(MarkovTrace[1,]%*%TransMatrix)
MarkovTrace[3,]<-as.vector(MarkovTrace[2,]%*%TransMatrix)

非常感谢!

您可以使用<<-运算符从外部作用域影响变量。 但是,也请考虑避免这种需要的编码样式,因为它将使您的代码更可重用且更易于调试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM