Matlab SimBiology - 允许自连接节点

时间:2013-04-18 15:25:43

标签: graph matlab

我正在使用Matlab的SimBiology工具框生成biograph(只是图表)。

当我试图包含一个连接到自身的节点时,例如:

g = [
       0 1 0;
       1 0 1;
       0 0 1; % This one connects to itself.   
    ]

我收到以下警告信息:

Warning: Self connecting nodes are not allowed, ignoring the diagonal of CM. 

由于我的数据集包含一些自连接节点,我想知道这是否是一个可配置的功能。

谢谢!

1 个答案:

答案 0 :(得分:2)

不幸的是,传记不能有自连边。如果您的目的仅用于可视化,则可以添加一些带有空标签的节点。以下是小图和两个自连接节点的示例:

cm = [0 1 1 0 0;1 0 0 1 1;1 0 1 0 0;0 0 0 0 1;1 0 1 0 1];
ids = {'M30931','L07625','K03454','M27323','M15390'};

sc = find(diag(cm));
cm = cm-diag(diag(cm)); 
n = size(cm,1);
m = numel(sc);
cm(n+m,n+m)=0;
cm(sub2ind([n+m,n+m],[sc;(1:m)'+n],[(1:m)'+n;sc]))=1;
ids((1:m)+n) = {' '};

bg = biograph(cm);
for i = 1:numel(bg.Nodes)
    bg.Nodes(i).Label = ids{i};
    if i>n
        bg.Nodes(i).Shape = 'circle';
    end
end
view(bg)

HTH 卢西奥