2011-12-22 10 views
5

मैंने एक जीयूआई एप्लीकेशन लिखा है जो बड़े डेटासेट पर कुछ विश्लेषण करने के बाद डेटा (पॉप-अप मेनू के माध्यम से) पर कई साजिश विकल्पों की संभावना प्रदान करता है।एक चर के अंदर मैटलैब प्लॉट स्टोर करें और इसे पुन: उपयोग करें

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

मूल रूप से मैं प्रकार एच = प्लॉट ([1 2 3]) का एक साजिश चर (संग्रहीत किए बिना) में संग्रहीत करना चाहता हूं और बाद में मांग पर इसे देखने में सक्षम होना चाहता हूं। मैंने प्लस हैंडल को अक्ष संभाल को असाइन करने का प्रयास किया।

h=plot([1 2 3]); 
handles.plottingscreen_axe=h; 

... लेकिन यह कुछ भी नहीं देखता है। समस्या को सरल बनाने के लिए मैं टर्मिनल पर टेस्ट डेटा के साथ कोशिश कर रहा हूं ताकि किसी अन्य व्यक्ति को विज़ुअलाइजेशन को डंप करने के लिए किसी एक आकृति संभाल को किसी अन्य को असाइन किया जा सके लेकिन कुछ भी काम नहीं कर रहा है, उदा।

h=plot([1 2 3]); 
f=figure; 
f=h; 

... लेकिन मैं f की पहचान करने के लिए एच की साजिश को देखने में सक्षम नहीं हूं।

स्पष्ट रूप से मुझे ग्राफिक हैंडल के साथ अनुभव नहीं हुआ है, इसलिए मुझे लगता है कि यह किसी के लिए कुछ आसान है। मैं इसके बारे में कोई संबंधित दस्तावेज नहीं ढूंढ पा रहा हूं, हर कोई बस एक ऐसा फ़ंक्शन बनाने का सुझाव देता है जो सब कुछ दोहराता है लेकिन यह वही है जो मैं टालने की कोशिश कर रहा हूं।

किसी भी मदद की सराहना की जाती है और इस मामले में मैं क्षमा चाहता हूं कि मेरा प्रश्न कुछ मूलभूत है।

उत्तर

4
figure; 
ah = axes; 
hold(ah,'on'); 
%Axes must have hold on or lh(1) will become invalid after lh(2) is created 
lh(1) = plot(ah,[1 2 3],[1 2 3],'r','visible','off'); 
lh(2) = plot(ah,[1 2 3],[3 2 1],'b','visible','off'); 

सेट इस पंक्ति 1 को चालू करेगा (लाल)

set(lh(1),'visible','on');set(lh(2),'visible','off') 

इस लाइन 2 (नीला)

को चालू करेगा

अपने जीयूआई में आपको अपने सभी लाइन हैंडल से दृश्यमान/बंद स्थिति को चक्र के लिए किसी प्रकार की कॉलबैक की आवश्यकता होगी। नोट: यदि ये बहुत बड़े डेटासेट हैं और आपके पास बहुत सी रेखाएं हैं तो यह स्मृति का एक समूह खा सकता है।

1

एक समाधान जो मैं सोच सकता हूं कि सहेजने वाले फ़ंक्शन का उपयोग करके अपने हार्डड्राइव पर आंकड़ों को स्टोर करना और बाद में उन्हें लोड के साथ याद करना है।

उदाहरण:

>> plot(1:4,5:8) 
>> saveas(gcf,'test.fig') 
>> close all 
>> open('test.fig') 
1

मुझे लगता है कि एक और समाधान नहीं है।

आप भूखंडों के सभी पूर्व की गणना कर सकते हैं, और फिर बस 'दर्शनीय'को संपत्ति की सच्ची या 'असत्य'

+0

@ एरोइन्गी ने इसे बहुत अच्छी तरह से वर्णित किया है। –