我有这个简短的功能应该:
- 取变换矩阵、初始向量和变换次数
- 计算结果向量并将它们堆叠在数据框中
- 绘制数据框变量并返回数据框
这是我的功能:
###### initvec _ initial vector
###### matrv _ transformation matrix
###### ns _ number of simulations
markovforplot<-function(initvec,matrv,ns) {
ns <- as.integer(ns)
initvec <- c()
exposant <- c(1:ns)
for (i in 1:ns) {
library(expm)
toprint<-apply((matrv %^% i)*initvec,2,sum)
dataf <- data.frame(exposant=exposant,toprint=toprint)
plot(dataf$exposant, dataf$toprint, type="l")
}
return(dataf)
}
使用格式正确的矩阵和向量进行测试时
(markovforplot(initvec=initvec,matrv=m,ns=20)
返回的错误是:
Error in apply((matrv %^% i) * initvec, 2, sum) :
dims [product 16] do not match the length of object [0]