Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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_Statistics_Cluster Computing_Euclidean Distance - Fatal编程技术网

Math 如何利用欧几里德距离同时计算多个点之间的距离

Math 如何利用欧几里德距离同时计算多个点之间的距离,math,statistics,cluster-computing,euclidean-distance,Math,Statistics,Cluster Computing,Euclidean Distance,我知道如何获得点之间的距离,但是我想获得两个对象之间的距离,其中每个对象都有几个点。(见下图。) 我想根据对象A和对象B的点与欧几里德距离计算它们之间的距离 我可以用欧几里得距离来解决我的问题吗 Java中的示例等式:Math.SQRT(Math.sqr(y2-y1)+Math.sqr(x2-x1)) 也许最好的方法是(正如@Erica已经建议的那样)将距离作为最近点距离的总和,但要注意,这不是对称的,因此不是数学家所说的真实距离。若要获得对称性,可以将其与其他对象的相同和相加,这将产生数学家

我知道如何获得点之间的距离,但是我想获得两个对象之间的距离,其中每个对象都有几个点。(见下图。)

我想根据对象A和对象B的点与欧几里德距离计算它们之间的距离

我可以用欧几里得距离来解决我的问题吗

Java中的示例等式:Math.SQRT(Math.sqr(y2-y1)+Math.sqr(x2-x1))

  • 也许最好的方法是(正如@Erica已经建议的那样)将距离作为最近点距离的总和,但要注意,这不是对称的,因此不是数学家所说的真实距离。若要获得对称性,可以将其与其他对象的相同和相加,这将产生数学家距离法

  • 另一种方法是对点进行索引并计算相同点的距离(当您知道时,总是有相同数量的点)。这有一个缺点,即具有不同索引的相同点是另一个对象(您可以使用到根的距离来指示它,对于相同的距离,可以使用逆时针方向来表示,以消除该效果)。这也产生了数学家距离法

第一个(一侧)的代码示例:

对于第二种情况(指示后):

双倍距离=0;
如果(A.getPoints().length!=B.getPoints().length)
距离=-1;
否则{
对于(int i=0;i请尝试以下方法:

    // GET DISTANCE METHOD
//Calculate the distance between two points base on their coordinates
public float getDistance(float X_1, float Y_1, float X_2, float Y_2) {
    //define the output distance
    float Distance;
    //calculate the distance
    Distance = (float) Math.sqrt(Math.pow((X_1 - X_2),2) + Math.pow((Y_1 - Y_2),2));
    //output the distance
    return Distance;
}

在回答这个问题之前,您需要首先确定二维对象之间距离的定义——最近点?最远点?质心?——除非您只是想要一个所有点之间距离的表(例如A1到B1、B2、B3、A2到B1、B2、B3等)这也可能是更多关于Math.SE或GIS.SE的主题(例如)谢谢你的回复Erica,我想知道对象A和B之间有多相似,接下来我将计算另一个对象的到,例如:对象A和C,对象B和D。然后我想为对象A选择合适的类。我的问题的最小距离是最佳条件。Thanks@Erica当前位置你好,艾丽卡,当我h另外,我发现(可能)类似的问题,这是链接:;谢谢你能给出计算示例吗?谢谢你的回答,我想问一下Math.pow(A.getPoints()[i].getX()-B.getPoints()[i].getX(),2)|为什么我在B中用A减去i点?A减去B中第二点的第一点如何?它会给出相同或不同的结果?对不起,我的英语肯定会给出不同的结果,甚至不会是距离函数(相同元素的两倍距离总是0)。好的,谢谢@ctst,我会从你的建议中学到更多。不过,为了获得更多信息,我目前学习了使用Hough变换进行特征提取,得到了如图所示的结果,其中x轴是θ,Y轴是ρ。使用欧几里德距离检查图像A和B之间的相似性,如果发现错误,请从点开始根据我的想法,请给我一些建议。无论如何,谢谢你的回复。
double distance = 0;
if(A.getPoints().length != B.getPoints().length)
    distance = -1;
else{
    for(int i=0; i<A.getPoints().length; i++){
        distance += Math.sqrt( Math.pow(A.getPoints()[i].getX()-B.getPoints()[i].getX(),2)+Math.pow(A.getPoints()[i].getY()-B.getPoints()[i].getY(),2));
    }
}
    // GET DISTANCE METHOD
//Calculate the distance between two points base on their coordinates
public float getDistance(float X_1, float Y_1, float X_2, float Y_2) {
    //define the output distance
    float Distance;
    //calculate the distance
    Distance = (float) Math.sqrt(Math.pow((X_1 - X_2),2) + Math.pow((Y_1 - Y_2),2));
    //output the distance
    return Distance;
}