在Julia中找到两个n维向量之间的欧几里德距离的简单方法是什么?
答案 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}
其他距离也可用: