Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 计算四维向量之间的欧氏距离_Math_Vector_Dimension_Euclidean Distance - Fatal编程技术网

Math 计算四维向量之间的欧氏距离

Math 计算四维向量之间的欧氏距离,math,vector,dimension,euclidean-distance,Math,Vector,Dimension,Euclidean Distance,假设我有两个四维向量(即a和b),如下所示: a = {a1, a2, a3, a4} b= {b1, b2, b3, b4} 如何计算这些向量之间的欧几里德距离?欧几里德距离演算与维度无关 在您的情况下,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

假设我有两个四维向量(即a和b),如下所示:

a = {a1, a2, a3, a4}
b= {b1, b2, b3, b4}

如何计算这些向量之间的欧几里德距离?

欧几里德距离演算与维度无关

在您的情况下,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 )
publicstaticfloatindistance(float[]a,float[]b){
浮动总数=0,差异;
for(int i=0;i

上述函数/方法/代码将计算n维空间中的距离。a和b是浮点数数组,具有相同的长度/大小,或者只是n。由于您需要四维,只需传递一个表示四维向量数据的四维数组。

与二维或三维向量相同。您只需将
+(a-b)^2
术语添加到
sqrt
。例如,
sqrt((a1-b1)^2+(a2-b2)^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);
}