私は...行列乗算器の%※%の誤差
"合計は" 再帰的に次の関数で...データフレームある
CreateMatrix <- function(frame,env){
M = matrix(c(frame$EE[env],0,0,frame$Fe[env],
frame$EL[env],frame$LL[env],0,0,
0,frame$LP[env],frame$PP[env],0,
0,0,frame$PA[env],frame$AA[env]),
nrow=4,byrow=T)
return(M)
}
Models = list()
for (i in seq(0,16)){
newModel <- CreateMatrix(Total,i)
Models[[i+1]] <- newModel
}
ここで作成した行列を乗算しています:
GrowthSeq <- function(matrix, t,P0){
M0 = matrix(c(132,0,0,0),nrow=4)
time = seq(0,t,1)
G = matrix
M = matrix(0,nrow=nrow(G),ncol=length(time))
rownames(M)=c("Eggs","Larvae","Pupae","Adults")
M[,1]= M0
print(is.matrix(G))
print(is.matrix(M))
for (d in 2:length(time)){
print(is.matrix(t(M[,d-1])))
M[,d]<-G%*%t(M[,d-1])
}
return(M)
}
g <- GrowthSeq(Models[[1]],100,500)
をその結果
[1] TRUE
[1] TRUE
[1] TRUE
Error in G %*% M[, d - 1] :
requires numeric/complex matrix/vector argument
ベクトルの両方が行列をどのように乗算しているのか分かりませんが、このエラーはまだ発生しています。なぜ行列MとGを乗算しようとしていないのですか?
ある「合計」の代わりに「マトリックス」の「M」に、変数を変更するにもかかわらず – Ell