7

Mathematica 8でオブジェクト内の情報にアクセスしようとしていますGraph。何らかの理由で、Partコマンドが機能しないようです。

myGraphアクセスしたいオブジェクトです。

下の最初の行はmyGraphを表示しています。他の人はそれを検査するのに役立ちます。

myGraph

myGraph // FullForm  
myGraph // InputForm  
myGraph // OutputForm    
myGraph[[1]]
myGraph[[2]]  

myGraph

なぜmyGraph[[1]]戻らないのList[1,3,4,2,5] ですか?Graph[目に見えないラッパーでラップされ た場合に備えて、レベル2にチェックしました。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]
4

3 に答える 3

8

見た目にもかかわらず、Mathematica8で導入されたグラフオブジェクトは「通常の」S式ではありません。次のSOの質問では、グラフ定義の一部を抽出する方法など、この問題やその他の問題について詳しく説明しています。

Mathematica8.0の新しいグラフ

于 2011-06-11T14:36:35.353 に答える
5

これは、「Mathematica8の'Graph`オブジェクトに関する情報にプログラムでアクセスする
にはどうすればよいですか?」という質問に答えるのに役立つかもしれません。http://reference.wolfram.com/mathematica/guide/GraphRepresentation.html にリストされているように、グラフに関する情報を取得するための新しい関数がいくつかあるようです 。 あなたの例では、グラフの頂点のリストを正しい順序で並べたいようです。関数VertixListはこれを行うようです。 これは、ドキュメントの[プロパティと関係]セクションのスクリーンショットです。


ここに画像の説明を入力してください

于 2011-06-11T13:34:18.710 に答える
5

私の質問にはいくつかの簡単な答えがあったことがわかりました。

のドキュメントにGraphは、オブジェクトから情報を取得するいくつかの方法が含まれていGraphます。(チェックしないのは恥ずべきことです。)私の見解では、最も便利なコマンドは次のとおりです。

VertexList[]
VertexCount[]
EdgeList[]
EdgeCount[]
EdgeRules[] 
VertexIndex[]
EdgeIndex[]
PropertyValue[]

通常、グラフオブジェクトを操作した後、グラフオブジェクトから情報を取得する必要があります。作成したグラフにどのような情報が入っているかは簡単にわかりますが、たとえばNeighborhoodGraphから派生グラフが出力された場合、プローブしないとそのプロパティがわかりません。

Wolframドキュメントへのリンクを提供してくれた@dbJohnに感謝します。

オブジェクトに関する以前のSOディスカッションでの彼のコメントへのリンクを提供してくれた@WReachに特に感謝しGraphます。

于 2011-06-12T05:58:20.727 に答える