2010-04-07 19 views
5

के साथ किसी आकृति के आंकड़े आकार को असाइन करना क्या किसी दिए गए हैंडल के साथ किसी आकृति की बाहरी संरचना संपत्ति असाइन करने का कोई तरीका है?किसी दिए गए हैंडल (MATLAB)

उदाहरण के लिए, अगर मैं यह आंकड़ा 1 का कहना है के रूप में एक आंकड़ा परिभाषित करने के लिए चाहता था, मैं प्रयोग करेंगे:

figure('Name', 'Name of figure','NumberTitle','off','OuterPosition',[scrsz(1) scrsz(2) 700 700]); 

:

figure(1) 
imagesc(Arrayname) % I.e. any array 

मैं भी एक आंकड़ा के गुणों कोड का उपयोग बदल सकते हैं क्या कोई संपत्ति नाम है जिसे मैं आकृति 1 के रूप में आवंटित आकृति में बाह्य स्थान संपत्ति असाइन करने के लिए उपयोग कर सकता हूं?

कारण मैं यह पूछ रहा हूं क्योंकि मैं एक शब्द फ़ाइल में किए गए फ़ंक्शन से कुछ भूखंडों को सहेजने के लिए save2word (MATLAB फ़ाइल एक्सचेंज से) नामक कमांड का उपयोग कर रहा हूं, और मैं आंकड़ों की संख्या सीमित करना चाहता हूं मैंने इसे खोल दिया है क्योंकि यह ऐसा करता है।

कोड रहा है के बाकी है:

plottedloops = [1, 5:5:100]; % Specifies which loops I want to save 


GetGeometry = getappdata(0, 'GeometryAtEachLoop') % Obtains a 4D array containing geometry information at each loop 


NumSections = size(GetGeometry,4); %Defined by the fourth dimension of the 4D array 

for j = 1:NumSections 
    for i = 1:plottedloops 
    P = GetGeometry(:,:,i,j); 

    TitleSize = 14; 
    Fsize = 8; 
    % Save Geometry 

    scrsz = get(0,'ScreenSize'); %left, bottom, width height 


    figure('Name', 'Geometry at each loop','NumberTitle','off','OuterPosition',[scrsz(1) scrsz(2) 700 700]); This specifies the figure name, dims etc., but also means multiple figures are opened as the command runs. 

% I have tried this, but it doesn't work: 
% figure(0, 'OuterPosition',[scrsz(1) scrsz(2) 700 700]); 

    imagesc(P), title('Geometry','FontSize', TitleSize), axis([0 100 0 100]); 

    text(20,110,['Loop:',num2str(i)], 'FontSize', TitleSize); % Show loop in figure 
    text(70,110,['Section:',num2str(j)], 'FontSize', TitleSize);% Show Section number in figure 

    save2word('Geometry at each loop'); % Saves figure to a word file 

end 

अंत

धन्यवाद

उत्तर

3

जब आप आंकड़ा

figH = figure; 

आप कर सकते हैं बनाने के आप आंकड़ा संभाल कैप्चर करते हैं किसी भी समय गुणों को असाइन करें जब आप

set(figH,'OuterPosition',[scrsz(1),scrsz(2),700,700]); 

तुम भी इकट्ठा कर सकते हैं आंकड़ा एक वेक्टर के अंदर संभालती है, और फिर एक ही बार में सभी आकार निर्धारित किया है।

आप किसी कारण से आंकड़ा संभाल पर कब्जा नहीं कर सकते हैं, तो आप findallgcf का उपयोग एक खास नाम वाली एक आंकड़ा देखने के लिए कर सकते हैं, या वर्तमान (पिछले चयनित/खोला) आंकड़ा के हत्थे मिलता है।

+0

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

+0

@EddyTheB: आप एक विशिष्ट हैंडल क्यों सेट करना चाहते हैं? हो सकता है कि वहाँ कुछ मैं नहीं दिखाई दे रहा है, लेकिन 'tag' संपत्ति की स्थापना आम तौर पर, मेरे लिए काम कर देता है, ताकि मैं भी" छिपा "हैंडल है, लेकिन अभी भी विशेष रूप से के माध्यम से' Figh = findall आंकड़ा (0 का उपयोग करने में सक्षम हूँ कर सकते हैं, 'टैग', 'mySpecificFigureHandle') ' – Jonas

+0

मैं कक्षा कि एक आंकड़ा को जन्म देती है, और कक्षा के गुणों में से एक आंकड़ा के लिए संभाल है। तो कहते हैं कि मैं वर्ग फोन और इसे संभाल के साथ एक आंकड़ा बनाता है '2', लेकिन फिर मैं आंकड़ा को बंद करने और कुछ अन्य आंकड़ा खोलें, उस नए आंकड़ा संभाल होगा '2'। और मूल आकृति में हैंडल एक अनुचित आंकड़े पर इशारा कर रहा है। – EddyTheB

0

यहाँ कुछ सुझाव/सुधार कर रहे हैं:

  • पाश के लिए आपकी दूसरी इस तरह दिखना चाहिए:

    for i = plottedloops 
    

    इसका कारण यह है plottedloopsपहले से ही एक सरणी है है, और आप i चाहते लूप के माध्यम से प्रत्येक पास के लिए सरणी में प्रत्येक अनुक्रमिक मान को लेने के लिए। उदाहरण के लिए, एक for loop के लिए एक आम रूप है:

    for i = 1:someScalarValue 
    

    कहाँ अवधि 1:someScalarValue आप के लिए एक सरणी पैदा करता है।

  • ऐसा लगता है कि आप किसी और एक आंकड़ा विंडो में कुछ साजिश, तो save2word साथ सहेजें, फिर साजिश कुछ है, तो बचाने कि, आदि इसलिए, मैं अपने आंकड़ा खिड़की बाहर बनाने का सुझाव अपने छोरों के लिए इच्छुक रहे हैं , और बस लूप के भीतर विंडो सामग्री को दोहराना।यदि आप इन दो लाइनों को अपने लूप के बाहर ले जाते हैं:

    scrsz = get(0,'ScreenSize'); %left, bottom, width height 
    figure('Name', 'Geometry at each loop','NumberTitle','off',... 
         'OuterPosition',[scrsz(1) scrsz(2) 700 700]); 
    

    तब आपको केवल एक समय में एक ही आंकड़ा होना चाहिए।

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