两个n维向量之间的欧几里德距离

时间:2014-09-18 00:14:08

标签: julia euclidean-distance

在Julia中找到两个n维向量之间的欧几里德距离的简单方法是什么?

2 个答案:

答案 0 :(得分:16)

这是一个简单的方法

n = 10
x = rand(n)
y = rand(n)
d = norm(x-y)  # The euclidean (L2) distance

对于曼哈顿/出租车/ L1距离,请使用norm(x-y,1)

答案 1 :(得分:13)

这很容易做到,这要归功于可爱的Distances包:

Pkg.add("Distances") #if you don't have it
using Distances
one7d = rand(7)
two7d = rand(7)
dist = euclidean(one7d,two7d)

此外,如果您说有9个col矢量的2个矩阵,您可以使用colwise获得每个相应对之间的距离:

thousand9d1 = rand(9,1000)
thousand9d2 = rand(9,1000)
dists = colwise(Euclidean(), thousand9d1, thousand9d2)
#returns: 1000-element Array{Float64,1}

你也可以比较单个矢量,例如原点(如果你想要每列矢量的大小)

origin9 = zeros(9)
mags = colwise(Euclidean(), thousand9ds1, origin9)
#returns: 1000-element Array{Float64,1}

其他距离也可用:

  • 平方欧几里德
  • Cityblock
  • 切比雪夫
  • 明可夫斯基
  • 汉明
  • 余弦
  • 相关性
  • 卡方
  • Kullback-Leibler divergence
  • Jensen-Shannon分歧
  • 马哈拉诺比斯
  • Squared Mahalanobis
  • 巴氏
  • 海林格

package's github page here.

的详细信息