尝试在子图列表上使用 Edge Count Mathematica 命令,但 Mathematica 无法将对象识别为图形

Trying to use Edge Count Mathematica command on a list of subgraphs but Mathematica doesn't recognise the objects as graphs

我正在尝试计算由 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]]; ]

生成子图列表的代码

Subcount[n_, p_, d_] := Module[{i, ex, comb, sub1}, 
ex = G[n, p]; comb = Subsets[Range[n], {d}];
Table[{Subgraph[ex, Part[comb, i]]}, {i, Length[comb]}]]

边缘计数代码

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

跟进,之后我想通过顶点着色来搜索完整的二分图,是否可以按照当前数据的存储方式来完成,或者是否有更有效的方法?

定义 Subcount 但随后使用 Subcount2

有一个小细节

Subcount returns {graph}Table 因此你试图做 Edgecount[{graph}] 而不是 Edgecount[graph]

如果将其更改为 Edgecount[First[ab]],以便从 {graph} 中提取 graph 或执行任何与此等效的操作,那么它似乎工作得很好