Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Python 如何循环并找到每对的hausdorff距离?_Python - Fatal编程技术网

Python 如何循环并找到每对的hausdorff距离?

Python 如何循环并找到每对的hausdorff距离?,python,Python,鉴于此 u = np.array([(1.0, 0.0), (0.0, 1.0), (-1.0, 0.0), (0.0, -1.0)]) v = np.array([(2.0, 0.0), (0.0, 2.0), (-2.0, 0.0), (0.0, -4.0)]) 如何找到每对的hausdorff距离以获得结果。比如说 dir

鉴于此

u = np.array([(1.0, 0.0),
              (0.0, 1.0),
              (-1.0, 0.0),
              (0.0, -1.0)])
v = np.array([(2.0, 0.0),
              (0.0, 2.0),
              (-2.0, 0.0),
              (0.0, -4.0)])
如何找到每对的hausdorff距离以获得结果。比如说

directed_hausdorff(u[i], v[i])[0]  #where i is the array point
  • 一,
  • 一,
  • 一,
  • 三,
  • 对于初学者,我尝试了无环

    HD = directed_hausdorff(u[0],v[0])
    print(HD)
    
    --> which should be giving me a result of 1 as i'm taking the 1st array in u & v
    --> however i am getting the error 'tuple index out of range'
    

    我想这就是你要找的

    import numpy as np
    from scipy.spatial.distance import directed_hausdorff
    
    u = np.array([(1.0, 0.0),
                  (0.0, 1.0),
                  (-1.0, 0.0),
                  (0.0, -1.0)])
    v = np.array([(2.0, 0.0),
                  (0.0, 2.0),
                  (-2.0, 0.0),
                  (0.0, -4.0)])
    for i in u:
      for j in v:
        print(directed_hausdorff(np.array([i]),np.array([j])))
      print('\n')
    
    编辑。。。。。。 对于相同的指数

    for i,j in zip(u,v):
      print(directed_hausdorff(np.array([i]),np.array([j])))
    

    到目前为止你试过什么?对于u中的每个点,找出到v中的壁橱点的距离。以这些距离中的最大距离为准。您需要编写自己的代码。编辑您的帖子并包含您的代码是一个好主意,这样我们就可以看到您可能出错的地方。我只是引用了Hausdorff距离的定义。对于每个u,找到到每个v的距离并取最小值。现在取这些最小值中的最大值。问题是如何找出两点之间的差异?和之间的距离是sqrt((x1-x2)**2+(y1-y2)**2)。毕达哥拉斯定理,是的!这就是我要找的。有没有办法只获得u(1.0,0.0)和v(2.0,0.0)的距离对,u(0.0,-1.0)和v(0.0,4.0)?由于上面的代码对所有vIf迭代u[0],您发现这很有用,请进行投票并接受答案。:)它适用于u和v中的所有点。检查打印语句的数量(其4*4=16)是。答案是有用的。但是,有没有办法只对同一数组索引中的点运行?比如u[0]对v[0],u[1]对v[1]?因为我不需要u[0]与v[1]之间的距离,所以对于这个快速问题,我实际上如何存储结果?我尝试了append,但是只记录了最后一个值。