0

次の難問があります。次のコードは、ベクトルのプールからベクトルを取得し、そのベクトルを行列に再バインドして、新しい行列に対して関数を実行し、スカラー結果を返します。

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])  
    #---------------------------------------------------------------------

必要な場所に事前に割り当てましたが、時間がかかりすぎるため、ループを取り除く必要があります。いろいろと考えてみたのですが、これを行う方法が思いつきません。

いつものように、どんな助けもありがたく受け取られます。私が逃したものがあれば、私に知らせてください。

4

1 に答える 1