如何在Mathematica 8中以编程方式访问有关"Graph"对象的信息?

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

为什么不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)

WRe*_*ach 8

尽管出现了,Mathematica 8中引入的图形对象不是"正常"的符号表达式.以下SO问题详细讨论了这个问题和其他类似问题,包括提取图形定义部分的方法:

Mathematica 8.0中的新图表

  • +1.使Graphs原子化并且其结构不透明且难以象征性地操纵的决定对我来说似乎是非常值得怀疑的.这似乎破坏了语言(非正式)原则.我最喜欢mma的一些东西是它是可以破解和一致的,并且它的许多内部构件都暴露出来.我不认为这个图表决定是获得效率的好方法(如果它是由效率提升所驱动的).我更愿意看到Mathematica编译器的扩展,以编译更大的符号代码子集,以及使用它实现的Graphs.我的两分钱. (8认同)

dbj*_*ohn 5

这可能对您有用,回答问题
"如何以编程方式访问 Mathematica 8中'Graph`对象的信息?"
似乎有很多新功能可以获取有关图表的信息,如 http://reference.wolfram.com/mathematica/guide/GraphRepresentation.html所示.
在您的示例中,您似乎希望以正确的顺序显示图表的顶点列表.函数VertixList似乎这样做.
以下是doc中"属性和关系"部分的屏幕截图:

在此输入图像描述


Dav*_*idC 5

事实证明,我的问题有一些直截了当的答案.

该文档Graph包含从Graph对象检索信息的几种方法.(对我没有检查感到羞耻.)在我看来,最有用的命令是:

VertexList[]
VertexCount[]
EdgeList[]
EdgeCount[]
EdgeRules[] 
VertexIndex[]
EdgeIndex[]
PropertyValue[]
Run Code Online (Sandbox Code Playgroud)

我们需要在操作它之后获取图形对象的信息.我可以很容易地找到哪些信息进入我构建的图形但是如果输出衍生图形,例如来自NeighborhoodGraph,我将不知道它的属性而没有探测.

感谢@dbJohn提供Wolfram文档的链接.

特别感谢@WReach 在先前关于该对象的SO讨论中链接到他的评论Graph.