次の形式のデータセットがあります。
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]
ここで、2 つの LocID 間の各エッジの重みは、指定された緯度と経度の情報から計算されます。同様に、d(l1,l2) = LocID-1 と LocID-1 の間の距離 = (lt1,lg1) と (lt2,lg2) の間の距離
距離計算は、harsine 式を使用して実行できます。だから、それは問題ではありません。このタスクを matlab で実行する必要があります。誰でも私を助けてくれませんか....よろしくお願いします....