【发布时间】:2014-04-16 17:15:02
【问题描述】:
我有一个格式如下的数据集:
UID Lat Long LocID
u1 lt1 lg1 l1
u1 lt2 lg2 l2
u1 lt3 lg3 l3
u2 lt4 lg4 l4
u3 lt1 lg1 l1
u3 lt4 lg4 l4
从这里我需要生成一个 LocID-LocID 无向图。为此,我需要以下格式的加权矩阵。
0 d(l1,l2) 0 0
d(l2,1) 0 d(l2,l3) d(l2,l4)
0 d(l3,l2) 0 0
d(l4,l1) d(l4,l2) 0 0
由于 user-u1 存在于位置 l1、l2 和 l3,因此我将它们视为图中的可见边。因此,存在从 l1 -> l2 和 l2-> l3 的边缘。从给定的示例中,存在 4 条边。
l1 -> l2 ; l2->l3 [For user u1]
l2->l4 [For user u2]
l1 -> l4 [For user u3]
这里两个 LocID 之间的每条边的权重是根据给定的纬度和经度信息计算的。比如,d(l1,l2) = LocID-1 和 LocID-1 之间的距离 = (lt1,lg1) 和 (lt2,lg2) 之间的距离
距离计算可以使用haversine公式来完成。所以,这不是问题。 我需要在 matlab 中执行此任务。谁能帮帮我吗.... 提前谢谢....
【问题讨论】:
-
我不明白这个问题。问题是如何创建具有这种模式的矩阵?我不明白这个模式。距离已经定义了吗?
-
编辑问题了解更多详情...
-
现在清楚多了,但仍有一些问题。为什么你的距离矩阵不对称?有
d(l4,l1),但没有d(l1,l4)。在您的数据中,您从哪里获得此信息:l2->l4 [For user u2]?。以何种格式提供数据?d(l2,1)显然是一个错字。d是什么?它已经定义了吗?
标签: matlab dijkstra shortest-path adjacency-matrix haversine