हे दोस्तों, मैं एक मैटलैब स्क्रिप्ट (एम-फाइल) बनाने की कोशिश कर रहा हूं जिसे बाहरी वीबीए स्क्रिप्ट द्वारा नियंत्रित किया जाएगा।मैटलैब स्क्रिप्ट को नियंत्रित करना (रोकें, रीसेट करें)
मैटलैब स्क्रिप्ट एक ही ऑपरेशन करेगा हर बार (यहां तक कि पैराम बदलते हैं, लेकिन इस मामले में यह मामला नहीं है) कुछ निश्चित लूप के लिए। पल मेरे नियंत्रण हिस्सा इस तरह दिखता है पर http://www.mathworks.de/help/techdoc/matlab_external/f135590.html#f133975
मेरा मुख्य समस्या यह है कि इस समस्या का matlab हिस्सा लागू करने के लिए है ...: अगर मैं यह सही देखते हैं, मैं matlab funktions VBA में इस तरह का उपयोग कर सकते
start.m:
run = 1;
reset = 0;
while run ~= 0 % Loop until external reset of 'run' to '0'
if reset ~= 0
doReset(); % Reset the parameters for the processing
reset = 0;
disp('I did a reset');
end
disp('I am processing');
doProcess();
pause(1)
end
disp('I am done');
रीसेट हिस्सा बहुत ठीक काम करता है स्क्रिप्ट के द्वारा मान बदलने, लेकिन जब मैं मैन्युअल रूप से किसी अन्य मूल्य के लिए 'रन' या 'रीसेट' का मान परिवर्तित करने का प्रयास करते समय मेरे कार्यक्षेत्र में, कुछ भी नहीं होता ... मेरी लिपि निरस्त नहीं होती है, न ही फिर से करता है सेट-अगर यह काम करता है ... ऐसा लगता है कि स्क्रिप्ट वर्कस्पेस में किसी भी बदलाव को पहचान नहीं पाती है ?!
बाद में चर 'रन' और 'रीसेट' को VBA स्क्रिप्ट द्वारा सेट या सेट किया जाएगा। क्या कोई व्यावहारिक कारण है कि मैं हाथ से लूप को रोक नहीं सकता?
किसी भी सलाह के लिए धन्यवाद!
स्वागत करती है, poeschlorn
संपादित करें:
ऐसा लगता है कि स्क्रिप्ट शुरू करने से पहले एक बार चर लोड करता है और फिर कभी नहीं रनटाइम के दौरान ... वहाँ एक कार्यक्षेत्र चर को स्पष्ट करने के लिए उपयोग किया है एक संभावना है ?
संपादित करें 2:
मैं इस समय कोई अतिरिक्त Toolboxes साथ मैटलैब 2010b का उपयोग
संपादित करें 3:
मुझे पता चला, कई 'कार्यस्थानों' या मेढ़े देखते हैं कि Matlab में। यदि मेरा फ़ंक्शन चल रहा है, तो चर 'बेस' (?) वर्कस्पेस में संग्रहीत हैं, जो मैटलैब वर्कस्पेस नहीं है जिस पर आप प्रत्येक मान को क्लिक और बदल सकते हैं। तो मुझे इस अशुभ 'बेस' स्पेस तक पहुंच प्राप्त करनी है और ध्वज 'रन' को शून्य में बदलना है। कोई विचार?
r.e. संपादित करें 3: कुछ भी अशुभ नहीं है, फ़ंक्शंस का अपना वैरिएबल स्टैक है, और वर्कस्पेस दूसरा है (आप नहीं चाहते हैं कि कोई उपयोगकर्ता फ़ंक्शन आपके वर्कस्पेस वैरिएबल और वीजा बनाम बदल रहा हो!)। यदि आपको वर्कस्पेस और उपयोगकर्ता फ़ंक्शंस में वैश्विक स्तर पर एक चर का उपयोग करने की आवश्यकता है, तो ** वैश्विक ** कीवर्ड, यानी अपने वर्कस्पेस और आपके द्वारा उपयोग किए जाने वाले किसी भी फ़ंक्शन में 'वैश्विक रन' का उपयोग करें - http://www.mathworks.com/ help/techdoc/matlab_prog/f0-38052.html # f0-38470 - यह मान रहा है कि आपका लूप बाहरी इंटरफ़ेस को अवरुद्ध नहीं कर रहा है ... –
@ एडिट 3: ऐसा कोई फ़ंक्शन है: ['असाइनिंग'] (http: //www.mathworks.com/help/techdoc/ref/assignin.html) जो _very_ अनुशंसित है। – Juhl
@ जुहल: यह फ़ंक्शन बहुत अनुशंसित क्यों है? मुझे इसके खिलाफ कोई बिंदु नहीं दिख रहा है ओ.ओ – poeschlorn