2011-06-11 11 views
7

मैं गणित 8 में Graph ऑब्जेक्ट के भीतर जानकारी तक पहुंचने का प्रयास कर रहा हूं। किसी कारण से, Part कमांड काम नहीं कर रहा है।मैथमैटिका 8 में 'ग्राफ़' ऑब्जेक्ट के बारे में जानकारी को प्रोग्रामेटिक रूप से कैसे एक्सेस कर सकता हूं?

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] 
+0

डेविड, मुझे लगता है कि बजाय अपने प्रश्न के शरीर में से (विशेष रूप से यह शीर्ष पर के साथ), एक जवाब के रूप में अपने "भरतवाक्य" पोस्ट करने के लिए उपयुक्त है। –

उत्तर

8

दिखावे के बावजूद, ग्राफ वस्तुओं मेथेमेटिका 8 में शुरू की "सामान्य" प्रतीकात्मक भाव नहीं हैं। अतः निम्नलिखित प्रश्न यह और विस्तार से अन्य तरह की समस्याओं, तरीके ग्राफ परिभाषा के कुछ हिस्सों को निकालने के लिए सहित चर्चा करता है:

new Graph in Mathematica 8.0

+0

धन्यवाद। मुझे यह कहने में शर्म आती है कि मैंने पहले आउट ऑफ़ द बॉक्स सुविधाओं के बारे में पढ़ा था, लेकिन पूरी तरह से उनके बारे में और 'ग्राफ' काम करने वाले नए तरीके के बारे में भूल गए थे। आपके द्वारा पोस्ट किए गए एसओ लिंक में आपका उत्तर कुछ जानने के लायक कुछ अतिरिक्त मुद्दों को उठाता है। – DavidC

+8

+1। ग्राफ़ परमाणु और उनकी संरचना अपारदर्शी और प्रतीकात्मक रूप से छेड़छाड़ करने में कठोर बनाने का निर्णय मेरे लिए बहुत संदिग्ध लगता है। ऐसा लगता है कि भाषा (अनौपचारिक) सिद्धांतों को कमजोर करना है। कुछ चीजें जो मुझे एमएमए के बारे में सबसे ज्यादा पसंद है वह यह है कि यह हैकबल और सुसंगत है, और इसके कई आंतरिक संपर्क सामने आए हैं। और मैं दक्षता हासिल करने के लिए एक अच्छा तरीका के रूप में इस ग्राफ निर्णय पर विचार नहीं करता (अगर यह दक्षता लाभ से प्रेरित था)। मैं प्रतीकात्मक कोड के एक बड़े उप-समूह को संकलित करने के लिए गणित संकलक के लिए एक्सटेंशन देखना चाहता हूं, साथ ही इसका उपयोग करके लागू ग्राफ़। मेरे दो सेंट। –

+0

@ लियोनिड मैं सहमत हूं। क्या आपको लगता है कि डब्ल्यूआर इसे खोल सकता है क्योंकि वे इसे और अधिक बढ़ाते हैं और धीरे-धीरे कॉम्बिनेटोरिका को प्रतिस्थापित करते हैं? – DavidC

5

यह सवाल
जवाब देने के लिए, आप के लिए उपयोगी हो सकता है "मैं प्रोग्राम के रूप में जानकारी एक 'Graph` वस्तु के बारे में मेथेमेटिका 8 में पहुंच सकते हैं?"
http://reference.wolfram.com/mathematica/guide/GraphRepresentation.html सूचीबद्ध ग्राफ के बारे में जानकारी के बिट्स प्राप्त करने के लिए कई नए कार्य प्रतीत होते हैं।
आपके उदाहरण में आप सही क्रम में ग्राफ के शिखर की सूची चाहते हैं। फ़ंक्शन VertixList ऐसा करने लगता है।
यहाँ दस्तावेज़ में & संबंध अनुभाग गुण से एक स्क्रीनशॉट है:

enter image description here

+0

धन्यवाद। मैंने पूरी तरह से 'VertexList' को अनदेखा कर दिया था। – DavidC

5

मेरे सवाल का कुछ सीधा जवाब वहाँ थे कि बाहर कर देता है।

Graph के लिए प्रलेखन Graph ऑब्जेक्ट से जानकारी पुनर्प्राप्त करने के कई तरीके हैं। (। जाँच नहीं करने के लिए मुझ पर शर्म की बात है) सबसे अधिक उपयोगी आदेश, मेरे विचार में, कर रहे हैं:

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

हम ग्राफ वस्तु आम तौर पर के बाद हम इसे चालाकी से किया है की जानकारी बाहर ले जाने की जरूरत है। मैं आसानी से यह पता लगा सकता हूं कि ग्राफ I निर्माण में कौन सी जानकारी गई थी, लेकिन यदि व्युत्पन्न ग्राफ आउटपुट है, उदा।नेबरहुडग्राफ से, मुझे इसकी संपत्तियों की जांच के बिना पता नहीं चलेगा। Wolfram प्रलेखन के लिए लिंक के लिए @dbJohn को

धन्यवाद।

Graph ऑब्जेक्ट के बारे में पूर्व SO चर्चा में his comments के लिंक के लिए @WReach को विशेष धन्यवाद।

संबंधित मुद्दे

 संबंधित मुद्दे