光之使者 发表于 2025-1-4 13:37:03

python:计算两簇3d点云之间的欧式距离

参考链接:
参考博客1
参考博客2
推荐示例1

def euclidean_distance(matrix1, matrix2):
    distances = np.zeros((matrix1.shape, matrix2.shape))
    d1 = np.sum(np.square(matrix1), axis=1, keepdims=True)
    d2 = np.sum(np.square(matrix2), axis=1)
    d3 = 2 * (matrix1 @ matrix2.T)
    distances = np.sqrt(d1 + d2 - d3)
    return distances
示例2

假设有两个N*3的矩阵A和B,其中A的每一行表示一个向量a,B的每一行表示一个向量b,那么可以计算每个向量之间的欧式距离。
详细计算步骤如下:

[*]创建一个长度为N的数组,用于存储每个向量之间的欧式距离。
[*]遍历矩阵A和B的每一行,计算对应向量之间的欧式距离。
[*]对每个向量的三个元素进行逐一相减,然后平方。
[*]将平方的效果进行求和。
[*]对求和的效果进行开平方,得到对应向量之间的欧式距离。
[*]将计算得到的欧式距离存储到数组中。
[*]对数组中的欧式距离求和,得到两个矩阵之间的总的欧式距离。
以下是利用Python实现该计算的示例代码:
import numpy as np

def euclidean_distance(A, B):
    N = A.shape
    distances = np.zeros(N)
    for i in range(N):
      distance = np.sqrt(np.sum((A - B)**2))
      distances = distance
    total_distance = np.sum(distances)
    return total_distance

# 示例使用
A = np.array([, ])
B = np.array([, ])

distance = euclidean_distance(A, B)
print(distance)
输出效果为:
4.242640687119285
这个示例中,A和B是两个2*3的矩阵,表示两个向量。计算得到的欧式距离为4.242640687119285


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: python:计算两簇3d点云之间的欧式距离