这是我实现的代码。
X = matrix(c(1, 2, 0, 3, -1, 4), nrow = 3, ncol = 2, byrow = T)
txtMGS <- function(A){
Q <- matrix(0, nrow = nrow(A), ncol = ncol(A))
R <- matrix(0, nrow = ncol(A), ncol = ncol(A))
for(i in 1:ncol(A)){
v <- A[,i, drop = F]
}
for(i in 1:ncol(A)){
R[i,i] <- sqrt(sum(v^2))
Q[,i] <- v / R[i,i]
for(j in i + 1:ncol(A)){
R[i,j] <- sum(Q[,i] * v)
v <- v - R[i, j] * Q[,i]
}
}
QR <- list(Q = Q, R = R)
return(QR)
}
txtMGS(X)
但是,我一直收到这个错误:
Error in `[<-`(`*tmp*`, i, j, value = sum(Q[, i] * v)) :
subscript out of bounds
有谁知道我该如何解决这个问题?提前谢谢你。