次の難問があります。次のコードは、ベクトルのプールからベクトルを取得し、そのベクトルを行列に再バインドして、新しい行列に対して関数を実行し、スカラー結果を返します。
In2 <- diag(nXtr+1)
mu <- array(1,c(dim(Xcal)[1],1))
Y.hat.calib <- array(0,c(nC,1))
alpha <- array(0,c(nC,1))
P = c()
for (i in 1:dim(Xcal)[1]){
Xtr2 <- rbind(Xtr,Xcal[i,])
K2 <-(Xtr2%*%t(Xtr2)+1)^2
rowCnt <- dim(Xtr2)[1]
mu[i] <- sqrt(1 + t(c(rep(1,(rowCnt-1)),0))%*%solve(K2+a*In2)%*%K2%*%c(rep(0,(rowCnt-1)),1))
#---------------------------------------------------------------------
Y.hat.calib[i] <- kCal[,i]%*%solve(K + a*In)%*%Ytr
alpha[i] <- (abs(Y.hat.calib[i] - Ycal[i]))/mu[i]
P <- c(P,alpha[i])
#---------------------------------------------------------------------
必要な場所に事前に割り当てましたが、時間がかかりすぎるため、ループを取り除く必要があります。いろいろと考えてみたのですが、これを行う方法が思いつきません。
いつものように、どんな助けもありがたく受け取られます。私が逃したものがあれば、私に知らせてください。