ペアワイズ距離

  • d次元空間に2つの点集合があるとする
  • 2つの点集合の要素ワイズペアの距離を求めたい
d <- 3
X1 <- matrix(rnorm(2*d),ncol=d)
X2 <- matrix(rnorm(4*d),ncol=d)

my.dist.pair <- function(X1,X2){
	L1 <- apply(X1^2,1,sum)
	L2 <- apply(X2^2,1,sum)
	IP <- X1 %*% t(X2)
	sqrt(outer(L1,L2,"+") - 2 * IP)
}
my.dist.pair(X1,X2)

for(i in 1:length(X1[,1])){
	for(j in 1:length(X2[,1])){
		print(sqrt(sum((X1[i,]-X2[j,])^2)))
	}
}