警告: Self connecting nodes are not allowed, ignoring the diagonal of CM. > In biograph (line 162) In oooo (line 257) 未定义函数或变量 'dag'。 出错 oooo (line 260) [num, sizes] = conncomp(G.dag); % 构建邻接矩阵 a3 = ... % 双层相依网络的邻接矩阵 % 构建图对象 G = graph(a3); % 计算最大连通度 [num, sizes] = conncomp(G); max_size = max(sizes);
时间: 2024-01-21 18:02:56 浏览: 94
这个警告是因为在使用 biograph 函数构建图对象时,邻接矩阵中存在自环,即某个节点连向自己,而 biograph 函数不支持自环。所以在构建图对象时,需要去掉自环。
针对这个问题,可以在构建邻接矩阵时,将邻接矩阵对角线上的元素设为0,即去掉自环。修改后的代码如下:
```
% 构建邻接矩阵
a3 = ... % 双层相依网络的邻接矩阵
a3(logical(eye(size(a3)))) = 0; % 去掉自环
% 构建图对象
G = biograph(a3);
% 计算最大连通度
[num, sizes] = conncomp(G);
max_size = max(sizes);
```
其中,`logical(eye(size(a3)))` 表示创建一个大小与邻接矩阵相同的单位矩阵,然后将其转化为逻辑数组,即对角线上的元素为 true,其余元素为 false。最后,通过逻辑数组对邻接矩阵进行赋值,将对角线上的元素设为 0,即去掉自环。
针对未定义变量 `dag` 的问题,是因为在 biograph 函数中没有指定返回有向无环图(DAG),所以不能使用 `G.dag` 访问 DAG。如果要访问 DAG,可以将 biograph 函数的第二个输出参数设置为 true,即 `G = biograph(a3,'ShowArrows','on','ShowWeights','on','EdgeFontSize',8,'NodeAutoSize','on','LayoutType','equilibrium','Repulsion',1500,'NodeFontSize',8,'EdgeType','straight','ShowTextInNodes','all','Acyclic',true);`。
阅读全文