[英]How can I use Matlab to plot a network graph from a Matrix
我希望有人能夠幫助我深入了解我的問題嗎?
我正在研究一個模擬小鎮上道路網絡的學術項目。 為了簡單起見,我的道路網絡是一個nxn矩陣(例如下面的9x9 matrixA)...
matrixA =
a1 b2 c3 d4 e5 f6 g7 h8 i9
a2 b0 c0 d0 e5 f0 g0 h0 i9
a3 b0 c0 d0 e5 f0 g0 h0 i9
a4 b0 c0 d0 e5 f0 g0 h0 i9
a5 b5 c5 d5 e5 f5 g5 h5 i9
a6 b0 c0 d0 e5 f0 g0 h0 i9
a7 b0 c0 d0 e5 f0 g0 h0 i9
a8 b0 c0 d0 e5 f0 g0 h0 i9
a9 b9 c9 d9 e9 f9 g9 h9 i9
我的目標是從上述矩陣生成具有以下特性的圖形:所有非零元素都是圖形中的頂點,並且自上而下和側向連接(連接器將是有向邊的),只要存在-零元素。 因此,例如,元素a1連接到b2; b2連接到c3; a1連接到a2; c3連接到d4等。 a2至a3; a3至a4; 和a4到a5。 隨后,將a5連接到虛詞,向南並向右(即a5連接到a4,b5和a6)。
最終目的是能夠搜索圖形並遍歷圖形。
任何建議/指導表示贊賞。 請讓他們知道我是否需要提供更多信息。
提前致謝
您可能想嘗試多處理一些矩陣。 如果要為每個矩陣條目使用索引值(a1 = 1,b2 = 2等等),則可以生成一個表示圖形的稀疏矩陣。
您上面的示例將導致一個圖,如下所示(在Matlab的稀疏方法中):
(1,2) 1
(1,10) 1
(2,3) 1
(3,4) 1
(4,5) 1
(5,6) 1
(5,14) 1
.
.
.
(10,19) 1
(14,23) 1
.
.
.
為簡單起見,我假定所有邊的值均為1。這當然取決於您。
生成了這種稀疏矩陣(G)后,可以使用以下命令顯示它
h = view(biograph(G,[],'ShowWeights','on'))
然后,還有許多其他方法可用於以這種方式設置的圖形,例如最大流量分析( http://ch.mathworks.com/help/bioinfo/ref/graphmaxflow.html )
我希望這回答了你的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.