不同长度的两个向量的欧氏距离

Euclidean Distance of two vectors with different length

我有这样一个计算欧氏距离的代码:

for(int j=0;j<inputdimension;j++){
        distance += Math.pow((vector1[j] - vector2.get(j)), 2);
    }

我有一个数组大小不同的数据示例,我想用这两个数组的欧几里德距离函数计算它。例如:

vector1[] = {0.5,0.1,0.3,1.5}
vector2[] = {1.4,3.2,3.4,0.1,7.8,0.2,8.3,8.4}

到目前为止,我遇到过使用相同数组大小计算欧氏距离的示例。所以我想出了一个解决方案来删除剩余的数组,以便它们像这样平衡,例如:

vector1[] = {0.5,0.1,0.3,1.5}
vector2[] = {1.4,3.2,3.4,0.1}

问题是,不知道对不对?还有其他方法可以平衡这些数据吗?

答案很简单。您无法找到维数不同的两点之间的欧氏距离。如果你像这样消除剩余的数组,答案将是不现实和不一致的。但是,您可以将零添加到较小的数组中,如果这对您来说是必须的。结果会更好,但在我看来还是不现实。

P.S。你需要在 for 循环之后使用 Math.sqrt(distance) 方法。