2013-06-25 106 views
3

如何在轉換矩陣的幫助下繪製網絡幀序列? 我有一個表示圖形的矩陣。矩陣隨迭代而改變。任何人都可以讓我瞭解我可以用來創建網絡系列的功能嗎?在matlab中繪製矩陣網絡或圖形

 original=[0.06 0.57 0.37 0  0; 
       0.57 0.06 0.37 0  0; 
       0.37 0.57 0.03 0.03 0; 
       0  0  0.03 0.13 0.84; 
       0  0  0  0.84 0.16]; 

假設上面是所討論的矩陣。那麼圖應爲

image

回答

7

這個問題是關係到this earlier querythis one。但這裏有一個特定於你的情況的答案。

給定一個加權鄰接矩陣:

N = size(original,1); 

,然後對應的一組上的圓的周長座標:

original = [0.06 0.57 0.37 0  0; 
       0.57 0.06 0.37 0  0; 
       0.37 0.57 0.03 0.03 0; 
       0  0  0.03 0.13 0.84; 
       0  0  0  0.84 0.16]; 

可以先在網絡中定義的節點的數量:

coords = [cos(2*pi*(1:N)/N); sin(2*pi*(1:N)/N)]'; 

然後,您可以使用gplot來繪製圖表:

gplot(original, coords) 

和使用text標記的頂點:

text(coords(:,1) - 0.1, coords(:,2) + 0.1, num2str((1:N)'), 'FontSize', 14) 

注意,gplot函數不重量的連接強度的線;矩陣元素(i,j)被視爲二進制,表示節點i和j之間不存在或存在鏈接。

+0

嗯,我試過了,但矩陣尺寸超過! – happyme

+0

@happyme,你能對你的問題更具體嗎?上面的代碼在我的機器上執行沒有錯誤。 – cjh

+0

我的壞,它的工作!謝謝!! – happyme