在matlab中从矩阵绘制网络或图形

时间:2013-06-25 22:21:03

标签: matlab graph matrix

如何借助转换矩阵绘制网络的一系列帧? 我有一个表示图形的矩阵。矩阵随着迭代而变化。谁能让我了解我可以用来创建网络系列的哪些功能?

      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

1 个答案:

答案 0 :(得分:7)

此问题与this earlier querythis one有关。但这是针对您情况的答案。

给定加权邻接矩阵:

 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];

您可以先定义网络中的节点数量:

N = size(original,1);

然后是圆周边的一组相应坐标:

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之间不存在或存在链接。

相关问题