2016-11-23 17 views
0

私はこのような配列を有する:ドロー(プロセス)点データとの間の距離によってグラフ(MATLAB)

1003 1007 0.0140589588522423 
1059 1185 0.0336635172202602 
1003 1093 0.0403056531253910 
1003 1111 0.0417787840566580 
1059 1127 0.0437157438475326 
1082 1092 0.0532154519263457 
1076 1185 0.0584688899071887 
1003 1129 0.0585907987209575 
1003 1045 0.0626826958352425 
1003 1070 0.0660757861128676 
1003 1014 0.0662929607751338 

最初の列は一つの名前をポイントである、第二の列は、二つの名前を指し、3番目の列は距離であります[0, 1]の範囲内の各2点の間。 3列目の値が大きい場合は距離が大きくなり、3列目の値が小さい場合は距離が小さくなります。このデータは20,000点以上あります。今私はパターン(グラフ)とより多くの情報が距離やポイントの仮想的な位置をよりよく理解したい。たとえば、クラスタをポイントの近くにまとめて、近くのクラスタをより大きなクラスタに再クラスタ化します。 MATLABを使用してこれを行うにはどうすればよいですか?私はこれらのデータをすべての点のペアについて持っています。

+0

[This](https://www.mathworks.com/help/matlab/graph-and-network-algorithms.html)は、開始するのに適しています。 – beaker

+0

今までにコード化したものを表示してください! @LeonardoHermoso。 –

+0

コードはありません。私はこの行列だけを分析するしかありません。 – user2991243

答えて

1

ほぼ正確な設定のより簡単な解決法の1つは、距離制約を考慮して潜在的な構成を見つけるためにcmdscale()https://www.mathworks.com/help/stats/cmdscale.html)を使用することです。点間の距離のベクトルを考える

cmdscale()pが最小化されるp寸法でn点のn*p行列を返します。

データは、各ポイント間の距離のn*nマトリックスに再編成する必要がありますが、とにかくこの種のデータを適切にグラフ化する必要があります。あなたは確かに、より高次の次元が必要になります2万データポイントの場合

distance = [0.0 0.1 0.2; 
      0.1 0.0 0.3; 
      0.2 0.3 0.0]; 
Y = cmdscale(distance); 
plot(ones(3,1),Y,'o'); % In this case my solution is 1 dimensional 

output

(うまくいけば、あなたのデータは既に2Dまたは3Dに拘束されています)。 3次元に制約されていない場合は、Yの構成行列を減らす必要があります(ヘルプはhttps://www.mathworks.com/help/stats/cmdscale.htmlを参照)。正確な値は失われますが、スケールデータの正確な表現には当てはまります。

より確率的な表現に興味があれば、ダイナミックリンク物理/重力を利用してウェイトを基にしたネットワークエンジンではるかに成功しましたが、MATLABに組み込まれた動的なものは何も見ていません。

関連する問題