【问题标题】:How to find approximate coordinates from four different lists od coordinates如何从四个不同的坐标列表中找到近似坐标
【发布时间】:2018-06-14 09:30:30
【问题描述】:

我有四个列表代表列表 A 和 B 中不同点的 X 和 Y 坐标,所以 X_A、Y_A、X_B、Y_B

A ] ['a', 'b', 'c', 'd', 'e', 'f']
X_A = [1.0, 2.2, 3.0, 4.0, 5.001, 6.0]
Y_A = [0.0, 2.0, 4.0, 6.1, 8.0, 0.0]
B = ['k', 'l', 'm', 'n', 'o', 'p']
X_B = [1.0, 3.0, 5.0005, 7.0, 9.1, 11.0]
Y_B = [0.0, 1.0, 8.0, 2.0, 8.0, 0.1]

上面读作'a'有坐标(1.0, 0.0),'l'有坐标(3.0, 1.0)

我想将 A 到 Node_A 列表的项目和 B 到 Node_B 的项目添加到列表 A 和 B 的元素的对应坐标满足误差范围:

(X_A - X_B) <= error and (Y_A - Y_B) <= error

我有以下代码,我认为它应该可以完成这项工作,但它似乎不起作用,我不明白为什么,感谢任何帮助!

Node_A, Node_B = [], []

error = 1e-2

i, j = 0, 0
for lo1,la1 in zip(X_A, Y_A):
    for lo2,la2 in zip(X_B, Y_B):
        if abs(lo1 - lo2) <= error and abs(la1 == la2) <= error:
            Node_A.append(A[i])
            Node_B.append(B[j])
            break
        j += 1
    i += 1
    j = 0

所需的输出应如下所示,因为它们来自 A 的“a”坐标等于来自 B 的“k”坐标和“e”坐标满足误差范围,因此大约等于“m”坐标:

Node_A: ['a', 'e']
Node_B: ['k', 'm']

相反,我得到 Node_A: ['c'] 和 Node_B: ['l']

【问题讨论】:

  • 这不是存储这些数据的好方法。你试过面向对象编程吗?你目前的结果是什么?
  • 您的if 中有一个==,应该是一个减号。该代码有效。
  • 你确定abs(la1 == la2) ,也许这需要abs(la1 - la2) 代替?
  • 我相信你的代码有一些拼写错误,例如A ] ['a', ... => A = ['a', ... 或定义X_A = [1.0 2.2 => X_A = [1.0, 2.2, ...
  • 谢谢你,很抱歉浪费你的时间这是一个愚蠢的帖子

标签: python python-3.x list


【解决方案1】:

改变

 if abs(lo1 - lo2) <= error and abs(la1 == la2) <= error:

 if abs(lo1 - lo2) <= error and abs(la1 - la2) <= error:

结果:

['a', 'e']
['k', 'm']

【讨论】:

    【解决方案2】:

    你在第二种情况下打错了。

    这给你一个:e,k:m:

    i, j = 0, 0
    for lo1,la1 in zip(X_A, Y_A):
        for lo2,la2 in zip(X_B, Y_B):
            if abs(lo1 - lo2) <= error and abs(la1 - la2) <= error:
                Node_A.append(A[i])
                Node_B.append(B[j])
                break
            j += 1
        i += 1
        j = 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多