Dav*_*idC 7 wolfram-mathematica mathematica-8
我正在尝试访问GraphMathematica 8中对象内的信息.出于某种原因,该Part命令似乎不起作用.
myGraph 是我想要访问的对象.
下面的第一行显示myGraph.其他人则用来检查它.
myGraph
myGraph // FullForm
myGraph // InputForm
myGraph // OutputForm
myGraph[[1]]
myGraph[[2]]
Run Code Online (Sandbox Code Playgroud)

为什么不myGraph[[1]]回来List[1,3,4,2,5] ?[我检查了2级以防万一Graph被一些隐形包装包裹起来. Level[myGraph,1],简单地回来{}.并FullForm[myGraph][[1]]返回图表本身的图片.
我必须忽略一些明显的东西.
编辑
这是我用来生成图表的代码.其中大部分与手头的问题无关.但至少你会使用我正在使用的相同代码.
ClearAll[edges, compatibleQ, adjacentCourses, g];
edges[w_, b_] :=
Most /@ Accumulate /@
Flatten[Permutations[#] & /@ IntegerPartitions[w, All, b], 1]
compatibleQ[j_, k_, edg_] :=
If[Intersection[edg[[j]], edg[[k]]] == {}, {j, k}, False]
adjacentCourses[edg_] :=
Module[{len = Length[edg]},
Cases[Flatten[Table[compatibleQ[j, k, edg], {j, len}, {k, j, len}],
1], {v_, w_} :> v \[UndirectedEdge] w]]
myGraph = Graph[adjacentCourses[edges[9, {2, 3}]], VertexLabels -> "Name",
ImagePadding -> 10]
Run Code Online (Sandbox Code Playgroud)
尽管出现了,Mathematica 8中引入的图形对象不是"正常"的符号表达式.以下SO问题详细讨论了这个问题和其他类似问题,包括提取图形定义部分的方法:
这可能对您有用,回答问题
"如何以编程方式访问 Mathematica 8中'Graph`对象的信息?"
似乎有很多新功能可以获取有关图表的信息,如
http://reference.wolfram.com/mathematica/guide/GraphRepresentation.html所示.
在您的示例中,您似乎希望以正确的顺序显示图表的顶点列表.函数VertixList似乎这样做.
以下是doc中"属性和关系"部分的屏幕截图:

事实证明,我的问题有一些直截了当的答案.
该文档Graph包含从Graph对象检索信息的几种方法.(对我没有检查感到羞耻.)在我看来,最有用的命令是:
VertexList[]
VertexCount[]
EdgeList[]
EdgeCount[]
EdgeRules[]
VertexIndex[]
EdgeIndex[]
PropertyValue[]
Run Code Online (Sandbox Code Playgroud)
我们需要在操作它之后获取图形对象的信息.我可以很容易地找到哪些信息进入我构建的图形但是如果输出衍生图形,例如来自NeighborhoodGraph,我将不知道它的属性而没有探测.
感谢@dbJohn提供Wolfram文档的链接.
特别感谢@WReach 在先前关于该对象的SO讨论中链接到他的评论Graph.