绘制有向网络的度分布

时间:2012-10-06 22:33:58

标签: matlab social-networking

我有一个数据集,用于我从社交网站抓取的边缘和节点。如何使用电子表格中的数据绘制度分布图?边缘是直的。我是MATLAB的初学者。请帮忙。

我创建了邻接矩阵adj,如下所示:

clear all; 
disp('Processing Edge-List File');
A = xlsread('edges.csv');
dim = max(max(A));
[E_Size, junk] = size(A); 
sprintf('The dataset has %d nodes and %d edges',dim, E_Size);
disp('Filling Adjanceny Matrix');
adj = sparse(A(:,1), A(:,2), ones(E_Size,1), dim, dim, E_Size);
if(adj==adj') disp('Symmetric Adjacency Matrix - Undirected Graph') ;
else disp('Assymmetric Adjacency Matrix - Directed Graph'); 

然后我试了surf(adj)。它给了我一个空图。我在创建邻接矩阵的方式有问题吗?

1 个答案:

答案 0 :(得分:2)

我假设您要绘制类似this的内容: enter image description here

确定每个节点的进出度后,需要将其存储在矩阵 A 中,以便 A(i,j)代表数字具有度数 i 和out-degree j 的节点。

然后,您可以使用surf(A)显示此信息。 surf绘制一个插值的三维表面,其中矩阵中每个元素的强度是表面的 Z - 坐标,列和行索引是 X,Y 值。