use*_*442 9 math vector dimension euclidean-distance
假设我有两个四维向量(即a和b)如下:
a = {a1, a2, a3, a4}
b= {b1, b2, b3, b4}
Run Code Online (Sandbox Code Playgroud)
如何计算这些向量之间的欧几里德距离?
小智 20
欧几里德距离演算与尺寸无关.
在您的情况下,a和b之间的欧几里德距离可写为:d(a,b)= sqrt(sum_ {i = 1} ^ {4}(a [i] - b [i])^ 2).
或者,更具体地:d(a,b)= sqrt((a1-b1)^ 2 +(a2-b2)^ 2 +(a3-b3)^ 2 +(a4-b4)^ 2).
public static float ndistance(float[] a, float[] b) {
float total = 0, diff;
for (int i = 0; i < a.length; i++) {
diff = b[i] - a[i];
total += diff * diff;
}
return (float) Math.sqrt(total);
}
Run Code Online (Sandbox Code Playgroud)
上面的函数/方法/代码将计算n维空间中的距离。a和b是浮点数的数组,并且具有相同的长度/大小或只是n。由于您需要4维,因此只需传递一个代表4维矢量数据的4位数组。