簡體   English   中英

如何使用Matlab從矩陣繪制網絡圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM