【问题标题】:Draw network or graph from matrix in matlab在matlab中从矩阵中绘制网络或图形
【发布时间】:2013-06-25 22:21:02
【问题描述】:

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

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

假设,上面是有问题的矩阵。那么图形应该是

【问题讨论】:

    标签: matlab graph matrix


    【解决方案1】:

    这个问题与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 之间是否存在链接。

    【讨论】:

    • @happyme,你能更具体地谈谈你的问题吗?上面的代码在我的机器上执行没有错误。
    猜你喜欢
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多