IT评测·应用市场-qidao123.com技术社区

标题: python:计算两簇3d点云之间的欧式距离 [打印本页]

作者: 光之使者    时间: 2025-1-4 13:37
标题: python:计算两簇3d点云之间的欧式距离
参考链接:
参考博客1
参考博客2
推荐示例1

  1. def euclidean_distance(matrix1, matrix2):
  2.     distances = np.zeros((matrix1.shape[0], matrix2.shape[0]))
  3.     d1 = np.sum(np.square(matrix1), axis=1, keepdims=True)
  4.     d2 = np.sum(np.square(matrix2), axis=1)
  5.     d3 = 2 * (matrix1 @ matrix2.T)
  6.     distances = np.sqrt(d1 + d2 - d3)
  7.     return distances
复制代码
示例2

假设有两个N*3的矩阵A和B,其中A的每一行表示一个向量a,B的每一行表示一个向量b,那么可以计算每个向量之间的欧式距离。
详细计算步骤如下:
以下是利用Python实现该计算的示例代码:
  1. import numpy as np
  2. def euclidean_distance(A, B):
  3.     N = A.shape[0]
  4.     distances = np.zeros(N)
  5.     for i in range(N):
  6.         distance = np.sqrt(np.sum((A[i] - B[i])**2))
  7.         distances[i] = distance
  8.     total_distance = np.sum(distances)
  9.     return total_distance
  10. # 示例使用
  11. A = np.array([[1, 2, 3], [4, 5, 6]])
  12. B = np.array([[2, 3, 4], [5, 6, 7]])
  13. distance = euclidean_distance(A, B)
  14. print(distance)
复制代码
输出效果为:
  1. 4.242640687119285
复制代码
这个示例中,A和B是两个2*3的矩阵,表示两个向量。计算得到的欧式距离为4.242640687119285


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4