尝试在子图列表上使用 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
或执行任何与此等效的操作,那么它似乎工作得很好
我正在尝试计算由 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
或执行任何与此等效的操作,那么它似乎工作得很好