我有以下难题。以下代码从向量池中获取一个向量,将向量绑定到矩阵并在新矩阵上执行函数并返回一个标量结果。
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])
#---------------------------------------------------------------------
我已经在需要的地方预先分配了,但真的需要摆脱循环,因为它太耗时了。我玩过各种想法,但无法想出办法来做到这一点。
任何帮助将一如既往地感激不尽。如果有什么我错过了,请告诉我。