我们说我有两个向量和一个如下所示的距离矩阵
v1 = sample(c(0,1),5,replace=TRUE)
v2 = sample(c(0,1),5,replace=TRUE)
d = matrix(rep(1,5*5),ncol=5)
diag(d) <- 0
使用下面的功能我计算距离
如何将它们粘贴在一起
答案 0 :(得分:1)
这是第一次尝试删除内部循环并使用vector2进行vector2乘法和求和:
f_d_categorical2 <- function(vector1, vector2, dist.matrix) {
ptm <- proc.time()
dist <- 0
for (i in 1:length(vector1)) {
dist <- dist + sum(vector1[i]*vector2*dist.matrix[i,])
}
print(proc.time()-ptm)
return(dist)
}
处理时间从1.8秒到0.03秒。我相信还有改进的空间和额外的测试用例。