两个坐标列表的欧几里得距离矩阵
Posted
技术标签:
【中文标题】两个坐标列表的欧几里得距离矩阵【英文标题】:Euclidean distance matrix of two list of coordinates [duplicate] 【发布时间】:2021-12-21 07:25:38 【问题描述】:我正在尝试获取一个包含两个列表中点之间距离的矩阵。
点的向量包含经纬度,任意两点之间的距离可以用欧几里得函数计算
我已经设法在两个特定坐标之间进行计算,但需要针对每个可能的商店-仓库距离遍历列表。
关于如何进行的任何建议? :)
wh_coords=[(134,104),(141,82),(128,29),(120,49),(56,104),(14,60),(16,51),(17,94),(50,102),(44,99)]
st_coords=[(53,138),(79,130),(72,76),(53,3),(85,111),(102,39),(122,18),(147,7),(40,150),(46,19),(57,19),(88,113)]
import math
def calc_euc_dist(point_1, point_2):
distance = math.sqrt((point_1[0] - point_2[0])**2 + (point_1[1] - point_2[1])**2)
return(distance)
point_1=(134,53)
point_2=(104,138)
distance1_2=calc_euc_dist(point_1, point_2)
print(distance1_2) ´´´
【问题讨论】:
【参考方案1】:itertools.product
具体来说:
import itertools
for point_1,point_2 in itertools.product(wh_coords, st_coords):
print(point_1,point_2, calc_euc_dist(point_1, point_2))
https://docs.python.org/3/library/itertools.html#itertools.product
【讨论】:
以上是关于两个坐标列表的欧几里得距离矩阵的主要内容,如果未能解决你的问题,请参考以下文章