Wolfram mathematica 尝试在子图列表上使用边计数Mathematica命令,但Mathematica没有';我无法将这些对象识别为图形

Wolfram mathematica 尝试在子图列表上使用边计数Mathematica命令,但Mathematica没有';我无法将这些对象识别为图形,wolfram-mathematica,graph-theory,Wolfram Mathematica,Graph Theory,我试图计算Mathematica中随机图生成的子图的边。我已经编写了生成随机图的代码,并将特定大小的不同子图提取并保存在列表中。我现在试图在列表的元素上使用EdgeCount,但得到一个错误 EdgeCount::在EdgeCount中的位置1处需要一个图形对象 生成随机图的代码 G[n_, p_] := Module[{A, M}, A = Table[If[i < j, If[RandomReal[] < p, 1, 0], 0], {i, 1, n}, {j, 1, n}];

我试图计算Mathematica中随机图生成的子图的边。我已经编写了生成随机图的代码,并将特定大小的不同子图提取并保存在列表中。我现在试图在列表的元素上使用EdgeCount,但得到一个错误 EdgeCount::在EdgeCount中的位置1处需要一个图形对象

生成随机图的代码

G[n_, p_] := 
Module[{A, M}, A = Table[If[i < j, If[RandomReal[] < p, 1, 0], 0], {i, 1, n}, {j, 1, n}];
M = A + Transpose[A];Return[AdjacencyGraph[M]]; ]
计算边的代码

mylist2 = Subcount2[5, 0.4, 4]
ab = mylist2[[3]]
EdgeCount[ab]

接下来,我想通过给顶点着色来搜索完整的二部图,这可以通过当前存储数据的方式来完成,还是有更有效的方法来完成?

这里有一个定义
子计数
的小细节,但随后使用
子计数2

Subcount
返回
{graph}
,因此您尝试执行
Edgecount[{graph}]
而不是
Edgecount[graph]

如果您将其更改为
Edgecount[First[ab]]
,以便从
{graph}
中提取
图形
,或者执行与此类似的操作,那么它似乎工作正常

mylist2 = Subcount2[5, 0.4, 4]
ab = mylist2[[3]]
EdgeCount[ab]