MATLAB

2010-12-27 12 views
55

में सभी खुले आंकड़ों के हैंडल कैसे प्राप्त करें I matlab (दूसरे फ़ंक्शन द्वारा उत्पन्न) में नौ खुले आंकड़े हैं और मैं उन्हें सभी को फ़ाइल में प्रिंट करना चाहता हूं। क्या किसी को पता है कि MATLAB में सभी खुले आंकड़ों के हैंडल कैसे पकड़ें?MATLAB

मुझे gcf के बारे में पता है, लेकिन ऐसा लगता है कि मैं जो चाहता हूं वह ऐसा नहीं लगता है।

उत्तर

72

ऐसा करने के कुछ तरीके हैं। एक तरह से यह करने के लिए (संभाल द्वारा पूर्व संस्करण में प्रतिनिधित्व 0) root object के सभी बच्चों को पाने के लिए है:

figHandles = get(groot, 'Children'); % Since version R2014b 
figHandles = get(0, 'Children');  % Earlier versions 

या आप समारोह findobj इस्तेमाल कर सकते हैं:

figHandles = findobj('Type', 'figure'); 

के किसी भी अगर आंकड़े hidden handles है, तो आप के बजाय समारोह findall उपयोग कर सकते हैं:

figHandles = findall(groot, 'Type', 'figure'); % Since version R2014b 
figHandles = findall(0, 'Type', 'figure');  % Earlier versions 
+1

+1 'findall' के लिए +1, उसे नहीं पता था। –

+0

'get()' और 'findall()' के लिए पहला तर्क एक हैंडल है। इसका मतलब क्या है जब 0 प्रदान किया जाता है? –

+2

@MinhTran: यह पूर्व संस्करणों से एक होल्डओवर है, जब रूट ऑब्जेक्ट को हैंडल '0' द्वारा दर्शाया गया था। यह अभी भी नए संस्करणों में काम करता है, लेकिन 'groot' का उपयोग करना बेहतर है। मैंने तदनुसार अपना जवाब अपडेट कर लिया है। – gnovice

10

मुझे लगता है कि +०१२३५९६६१०००काम करना चाहिए

handles=findall(0,'type','figure')

14

करने के लिए सबसे अच्छी चीजों में से एक हैंडल के लिए देखने की जरूरत है नहीं है। जब आप प्रत्येक आकृति बनाते हैं, तो इसके हैंडल को कैप्चर करें। ,

वे कहा जाता है हैंडल क्योंकि आप

+6

यह एक अच्छा मुद्दा है, हालांकि यह आपकी स्थिति और कार्यप्रवाह पर निर्भर करता है। यदि आपके पास विभिन्न प्रकार के प्लॉटिंग कमांड हैं जो विभिन्न विशेष भूखंड लाते हैं और आप ऐसा कुछ चाहते हैं जो "पहले से होने वाली किसी भी चीज़ से संबंधित है" तो यह हैंडल के लिए पूछताछ करने में सक्षम होने के लिए उपयोगी हो सकता है। –

+3

इसके अलावा, वहां कुछ फ़ंक्शन हैं जो आपके लिए कई आंकड़े प्लॉट करेंगे ('anova1' तीन प्लॉट करेगा) और वे आपको – Tex

4

आप के लिए ठीक जवाब पाने है उन पर पकड़ करने वाले हैं:

h(1) = figure; 
h(2) = figure; 
... 

डेवलपर्स से एक के रूप में यहाँ मुझे बताया द्रव्यमान संभालती है। लेकिन मूल प्रश्न के लिए एक और युक्ति- सभी आंकड़ों को फ़ाइल में प्रिंट करें: आप चित्रों या हैंडल से निपटने के बिना publish विकल्प का उपयोग कर सकते हैं।

+1

+1 हैंडल नहीं कर सकते हैं। इस अपेक्षाकृत अज्ञात कमांड को कितना शक्तिशाली माना जाता है, मुझे आश्चर्य है कि अधिक अपवर्तक नहीं हैं। –

+1

अनुपस्थिति के महीनों के बाद बस लॉग इन किया गया, बस उस उत्तर को ऊपर उठाने के लिए कि Google ने मुझे अभी इंगित किया है। – user2987828