[英]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.