2012-11-07 15 views
6

यह एक छोटे समाधान के साथ एक समस्या होनी चाहिए, लेकिन फिर भी मैं एक नहीं ढूंढ पा रहा था।दो आकृति फ़ाइलों को एक फ़ाइल में कैसे विलय करें

कहें कि मेरे पास 2 matlab आंकड़े fig1.fig, fig2.fig है जो मैं लोड करना और उसी साजिश विंडो में दिखाना चाहता हूं।

मुझे क्या करना चाहिए?

मेरा मतलब है, मुझे पूरा यकीन है कि मैं कुछ कम (एआर) स्तर ग्राफिक कमांड का उपयोग करके कार्य को पूरा कर सकता हूं जो एक छवि से सामग्री निकालता है और उन्हें दूसरे में रखता है, फिर भी मैं विश्वास नहीं कर सकता कि कोई उच्च नहीं है स्तर समारोह (load fig2 on top of fig1) यह करता है ... 2 भूखंडों की तुलना (दुर्भाग्य से पहले से ही सहेजा गया) एक बहुत ही आम कार्य है, मैं कहूंगा।

+1

यह एक आम काम है, लेकिन इसे पूरा करने का सामान्य तरीका डेटा को प्रतिस्थापित करना है (कम से कम मेरे अनुभव में।) किसी भी कारण से आप आंकड़ों को पुन: उत्पन्न नहीं कर सकते हैं? – John

+1

'.fig' फ़ाइलें पहले से मौजूद हैं; वे विभिन्न कोडों द्वारा उत्पादित होते हैं जिनके परिणाम मैं तुलना करना चाहता हूं। ग्राफिक्स में हेरफेर करने के लिए एक रास्ता तय करने के अलावा, उन्हें चलाने के लिए थोड़ी देर लगती है। :( – Acorbe

+0

हम्म, दूसरी चाल प्रासंगिक डेटा को फ़ाइलों में संग्रहीत करना है, और बाद में इसे पढ़ना है। यह समझें कि आपकी स्थिति पर लागू नहीं हो सकता है। – John

उत्तर

17

यह स्पष्ट नहीं है कि आप आंकड़ों से डेटा निकालना चाहते हैं और डेटा की तुलना करना चाहते हैं, या यदि आप प्लॉट को दो आंकड़ों से एक ही आंकड़े में जोड़ना चाहते हैं।

यहाँ कैसे आप दो आंकड़े एक में (अगर thats कि आप क्या करना चाहते हैं)

पहले लोड आंकड़े गठबंधन .. है:

fig1 = open('FigureFile1.fig'); 
fig2 = open('FigureFile2.fig'); 

कुल्हाड़ियों जाओ आंकड़े से वस्तुओं

ax1 = get(fig1, 'Children'); 
ax2 = get(fig2, 'Children'); 

अब ax2 से ax1 पर हैंगल ग्राफिक्स ऑब्जेक्ट्स की प्रतिलिपि बनाएँ। पाश आवश्यक अगर आपके आंकड़े केवल एक ही कुल्हाड़ियों

for i = 1 : numel(ax2) 
    ax2Children = get(ax2(i),'Children'); 
    copyobj(ax2Children, ax1(i)); 
end 

नोट इस उदाहरण में कल्पना है कि अपने आंकड़े कुल्हाड़ियों के एक ही संख्या से अधिक है और जिन्हें आपने में पहली कुल्हाड़ियों से वस्तुओं की प्रतिलिपि बनाना चाहते नहीं है पहली आकृति पर पहली धुरी के लिए दूसरा आंकड़ा। यदि अक्ष अक्षरों को रेखांकित नहीं किया गया है तो उचित अनुक्रमण को समझने के लिए आप पर निर्भर है।

+0

धन्यवाद, मैं कोशिश कर रहा हूं। – Acorbe

+0

मुझे लगता है कि मैं नोट केस में हूं .. दो आंकड़ों में से एक में 2x1 सबप्लॉट है। – Acorbe

+0

अद्भुत !! धन्यवाद! यह काम करता हैं! – Acorbe

9

उत्तर स्लेटन दिया गया अच्छा है। यहां एक और युक्ति है: यदि आपके पास दो अलग-अलग मैटलैब आकृति विंडो में दो प्लॉट खोले गए हैं, तो यह न भूलें कि आप उचित भूखंडों की प्रतिलिपि बना सकते हैं और क्लिक कर सकते हैं। Matlab आकृति विंडो में तीर पॉइंटर पर क्लिक करके और फिर प्लॉट लाइन पर क्लिक करके ऐसा करें। कॉपी करें (प्लॉट लाइन, टेक्स्टबॉक्स, आदि ...) ऑब्जेक्ट। फिर, इसी तरह अन्य Matlab आकृति विंडो में धुरी का चयन करें और इसे पेस्ट करें।

मैं यह 'मूर्ख' समाधान देता हूं क्योंकि यह सहयोग मीटिंग में उपयोगी साबित हुआ है। किसी के सामने पॉइंट-एंड-क्लिक कॉपी करना (जैसे आपका सलाहकार) वास्तव में संचार करता है कि वक्र की तुलना किस प्रकार की जा रही है, और यह आपको दूसरों के सामने कोड को आग लगाने से रोकती है।

+0

यह भी अच्छा है। – Acorbe

2

आप प्रत्येक भूखंड के लिए मेनू में फ़ाइल जेनरेट कर सकते हैं। फिर उपस्थिति से संबंधित विवरणों के बीच में "पकड़ो" के साथ, एक ही एमफाइल में दोनों को कॉपी और पेस्ट करें। फिर नई एम-फाइल चलाएं।

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