0

一連の条件付きマトリックスをベクトル形式で作成して保存し、それらを呼び出して、それらの構造をマトリックスに戻し、ベクトルを掛けます。このベクトルは、前のベクトルと現在の行列に依存します。これを 2 番目のループで [,y+1] として表現して、出力行列のベクトルにインデックスを付けようとしました。希望の結果が得られる一方で、プログラムを中止するエラーも発生します。これにアプローチする方法についての提案をいただければ幸いです。

env=rnorm(50, 22, 5)
les=matrix(nrow=9,ncol=length(env),byrow=T)
for (x in 1:length(env))
{
    a=sqrt(env[x])-3
    b=sqrt(env[x])-2        
    c=sqrt(env[x])-1
    A=.9
    B=.5
    C=.2

les[,x]=c(a,b,c,A,0,0,0,B,0)
}   
pop=matrix(nrow=3,ncol=length(env))
pop[,1]=c(1,2,2)
for (y in 1:length(env))
{

    pop[,y+1]=pop[,y]%*%matrix(les[,y],3,3,T)
}           
print(pop)  
barplot(pop)
4

1 に答える 1

0

R のベクトル、行列、および配列の添え字はすべて 1 ベースです。length(env)-1ループ内で 1 だけ先に再生する場合は、まで繰り返す必要があります。

于 2013-03-18T21:38:50.740 に答える