机智的傻子 2021-04-23 13:39 采纳率: 0%
浏览 13

怎么在R里找两组数据的 the smallest Euclidean distance?

我的目标是在不使用library的情况下为每个点找到与另一组数据对应的一个点的最小距离,并将名称附加到点数据中(显然是最小的),并使此过程自动进行。

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-14 22:06
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    为了达到你的目标,首先你需要实现一个函数来计算两个点之间的距离。然后你可以循环遍历每个点,计算其与另一组数据中所有点的距离,并找到最小的距离。 以下是一个示例代码来实现这个功能:
    import math
    # 计算两个点之间的距离
    def distance(point1, point2):
        return math.sqrt((point1[0] - point2[0])**2 + (point1[1] - point2[1])**2)
    # 两组数据
    data1 = [(1, 2), (3, 4), (5, 6)]
    data2 = [(2, 2), (4, 4), (6, 6)]
    # 为每个点找到最小距离的对应点,并将名称附加到点数据中
    for i in range(len(data1)):
        min_distance = float('inf')
        min_point = None
        for j in range(len(data2)):
            dist = distance(data1[i], data2[j])
            if dist < min_distance:
                min_distance = dist
                min_point = data2[j]
        data1[i] = data1[i] + (min_point,)
        
    print(data1)
    

    在上面的代码中,我们首先定义了计算两点之间距禧的函数distance。然后我们遍历第一组数据中的每一个点,计算其与第二组数据中每个点的距禧,找到最小的距离以及对应的点,并将其加到原始数据中。最终输出结果就是将第一组数据中每个点与第二组数据中最近的点的组合。 希望这个示例代码可以帮助你完成你的目标。

    评论

报告相同问题?