如何计算两个向量的归​​一化欧几里德距离?

mac*_*ery 2 matlab euclidean-distance

假设我有以下两个向量:

x = [(10-1).*rand(7,1) + 1; randi(10,1,1)];
y = [(10-1).*rand(7,1) + 1; randi(10,1,1)];
Run Code Online (Sandbox Code Playgroud)

前七个元素是 [1,10] 范围内的连续值。最后一个元素是 [1,10] 范围内的整数。

现在我想计算 x 和 y 之间的欧几里得距离。我认为整数元素是一个问题,因为所有其他元素都可以非常接近,但整数元素总是有 1 的间距。所以对整数元素有偏见。

我如何计算它的归一化欧几里德距离之类的东西?

dro*_*rco 8

根据Wolfram Alpha交叉验证的以下答案,归一化欧氏距离定义为:

在此处输入图片说明

您可以使用 MATLAB 计算它:

0.5*(std(x-y)^2) / (std(x)^2+std(y)^2)
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用:

0.5*((norm((x-mean(x))-(y-mean(y)))^2)/(norm(x-mean(x))^2+norm(y-mean(y))^2))
Run Code Online (Sandbox Code Playgroud)