因此,我正在尝试使用 R 计算与高斯过程相关的相关矩阵,并希望在不使用我在下面编写的三重 for 循环的情况下提出一些建议。主要是我想尝试压缩代码以实现可读性并加快计算速度。
#Example Data
n = 500
x1 = sample(1:100,n,replace=T)
x2 = sample(1:100,n,replace=T)
x3 = sample(1:100,n,replace=T)
X = cbind(x1,x2,x3)
R = matrix(NA,nrow=n,ncol=n)
for(i in 1:nrow(X)){
for(j in 1:nrow(X)){
temp = 0
for(k in 1:ncol(X)){
temp = -abs(X[i,k]-X[j,k])^1.99 + temp
}
R[i,j] = exp(temp)
}
}
因此,随着n
变大,代码变得越来越慢。另外值得注意的是,由于这是一个相关矩阵,所以矩阵是对称的,对角线等于 1。