2012-03-01 29 views
19

मैं मैटलैब फ़ंक्शंस के सेट में चर के आउटपुट को दबाना चाहता हूं। समस्या यह है कि लेखक ";" भूल जाते हैं कोड में कई पदों पर। डीबग उद्देश्य के लिए यह आउटपुट उपयोगी है लेकिन अब मैं लापता ";" के लिए पूरे कोड को खोजे बिना इसे दबाना चाहता हूं। क्या इस तरह के आउटपुट को बंद करने की संभावना है?आउटपुट आउटपुट

+3

इसका संभावित डुप्लिकेट: [http://stackoverflow.com/questions/3029636/suppressing-a-functions-command-window-output-in-matlab ](httpoverflow.com/questions/3029636/suppressing-a-functions-command-window-output-in-matlab) उत्तर था: "आप किसी [evalc] (http://www.mathworks.com/help/ में फ़ंक्शन में कॉल को लपेटने का प्रयास कर सकते हैं) techdoc/रेफरी/evalc.html)। " –

उत्तर

28

आप evalc का उपयोग करके आउटपुट को दबा सकते हैं, लेकिन इसके लिए आपको अपनी अभिव्यक्ति को स्ट्रिंग के रूप में पास करने की आवश्यकता है। उदाहरण के लिए यदि आप उपयोग कर रहे थे:

[A,B,C] = notMyFunction(d,e,f); 

इसके बजाय आप

[T,A,B,C] = evalc('notMyFunction(d,e,f);'); 

और किसी भी उत्पादन कि सांत्वना अब बफ़र और T में संग्रहीत किया जाएगा करने के लिए चला गया होता उपयोग कर सकते हैं।

1

अंत में अर्धविराम के साथ उन कार्यों को कॉल करने के बारे में क्या? तो बजाय

my_function() 

बुलाने की बस टाइप

my_function(); 

संपादित करें: http://www.mathworks.de/help/techdoc/ref/evalc.htmlevalc('my_function()'); EDIT2: बहुत देर हो गई

+0

यह गलत है। अर्धविराम जोड़ना वापसी मूल्य (ओं) को प्रिंट करना रोकता है। यह फ़ंक्शन के व्यवहार के बारे में कुछ भी नहीं बदलता है। – Ronenz

+0

तो यह केवल आंशिक रूप से गलत है ;-) – tim

2

क्षमा करें, लेकिन सिर्फ आदेश को प्रदर्शन बंद करने के लिए कोई आसान तरीका है विंडो जब आप सेमी-कोलन जोड़ने में विफल रहते हैं। बस अर्द्ध-कोलों को स्वयं जोड़ें।

हां, आप उन्हें डिस्प्ले और डिस्प्ले ओवरलोड कर सकते हैं, उन्हें काम करने से रोकते हैं, लेकिन फिर वे सामान्य परिस्थितियों में भी काम करने में असफल हो जाते हैं। आप matlab का एक मूल्यवान हिस्सा तोड़ देंगे।

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

-2

फ़ंक्शन को कॉल करते समय, आपको अंत में एक संकेत ";" डालना होगा, अन्यथा आउटपुट प्रदर्शित होगा, उपयोगकर्ता फ़ंक्शन या मैटलैब-प्री-डिफ़ाइंड फ़ंक्शंस के लिए कोई फर्क नहीं पड़ता।

+0

प्रश्न फ़ंक्शन कॉल के रिटर्न मानों के आउटपुट को दबाने के लिए नहीं था। सवाल यह था कि सभी नेस्टेड फ़ंक्शन कॉल के आउटपुट को दबाएं जो याद कर सकते हैं; संकेत। इसलिए 'evalc' जवाब है। –