1

我正在尝试编写代码(使用 R),它返回一个矩阵,其中包含所有行对之间的平方距离。下面是我写的一个实现。它按预期工作,但随着行数变大会变得非常慢。根据我的观察,这条线 (combn(x,m=2)) 运行时间最长。因此,我想知道是否有人对如何使代码对大量行更有效有任何建议。提前致谢

gen.dist <- function(x){
  n <- nrow(x)
  idx <- combn(seq(1,n),m=2)
  d <- apply(x, 2, calc.distance, combinations=idx,alpha=2)
  return(list(n=n,d=d))
}

calc.distance <- function(x,combinations,alpha){
  x1 <- x[combinations[1,]]
  x2 <- x[combinations[2,]]
  output <- (x1 - x2)^alpha
  return(output)
}
4

0 回答 0