如何在Matlab中创建加权邻接矩阵

时间:2014-03-12 13:54:09

标签: matlab dijkstra shortest-path adjacency-matrix haversine

我有以下格式的数据集:

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)之间的距离

距离计算可以使用半胱氨酸公式来完成。所以,这不是问题。 我需要在matlab中执行此任务。谁能帮帮我吗.... 提前谢谢....

1 个答案:

答案 0 :(得分:0)

您可能正在寻找统计工具箱中的pdist功能。

它计算具有不同距离度量的点之间的距离,也允许自定义函数(作为句柄)。