欧几里德距离不同长度的两个向量

时间:2016-03-29 05:46:42

标签: java arrays vector euclidean-distance

我有一个计算欧氏距离的代码,如下所示:

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}

问题是,我不知道它的权利与否?还有其他方法可以平衡这些数据吗?

1 个答案:

答案 0 :(得分:1)

答案很简单。您无法找到具有不同维数的两个点之间的欧氏距离。如果你消除那样的剩余数组,那么答案就是不切实际且不一致。但是,如果您必须这样做,则可以将零添加到较小的数组中。结果会更好,但在我看来仍然是不现实的。

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