2013-01-07 19 views
5

मेरे पास एक छोटा फ़ंक्शन है जो एक चर में डेटा पढ़ने के लिए textscan का उपयोग करता है।फ़ंक्शन आउटपुट को दबाएं

मेरे समस्या यह है कि मैं हमेशा इस मिलता है:

>>function('function.txt') 

    ans = 

     {10x1 cell} {10x1 cell} {10x1 cell} [10x1 double] 

वहाँ लाइन मैं फ़ंक्शन को कॉल करने के लिए उपयोग के अंत के लिए एक अर्ध बृहदान्त्र जोड़ने से अलग इस को दबाने के लिए, कोई तरीका है? मैं अर्ध कोलन जोड़ने के बिना इसे दबाने में सक्षम होना चाहता हूं। मैं इस समारोह को चलाने के दौरान कुछ भी प्रदर्शित नहीं करना चाहता, मैं बस अपनी फाइल लोड करना चाहता हूं।

+0

ओह, अ- सवाल पढ़ें। मैं अपना जवाब हटा रहा हूँ। –

+4

अभी प्रश्न को फिर से पढ़ा है :-) आप 'evalc' (मुझे लगता है) का उपयोग करके क्या किया जा सकता है। [Suppress-output] देखें (http://stackoverflow.com/questions/9518146/suppress-output) और [suppressing-a-functions-command-window-output] (http://stackoverflow.com/questions/3029636/ दबाने-ए-फ़ंक्शंस-कमांड-विंडो-आउटपुट) इस प्रश्न के निकट डुप्लिकेट के लिए (मैं इसे संभावित डुप्लिकेट के रूप में फ़्लैग कर रहा हूं)। –

उत्तर

5

आप फ़ंक्शन के आउटपुट तर्क (या मूल्य मान) को हटाकर आउटपुट को दबा सकते हैं। या कोशिश उपयोग Variable Number of Outputs, देख Support Variable Number of Outputs

function varargout = foo 
    nOutputs = nargout; 
    varargout = cell(1,nOutputs); 
    for k = 1:nOutputs; 
     varargout{k} = k; 
    end 
end 

आप टाइप >>foo और कुछ भी नहीं मिलता है। आप >>a=foo टाइप करें और >>a=1 प्राप्त करें। आप >>[a,b]=foo टाइप करें और >>a=1 >>b=2 प्राप्त करें।

आप इस प्रकार आउटपुट तर्क प्रदान न करके आउटपुट दबा सकते हैं।

1

आप diary कार्यक्षमता का उपयोग करने का प्रयास कर सकते हैं। यह कमांड प्रॉम्प्ट से सभी इनपुट और आउटपुट को आपकी पसंद की फाइल पर रीडायरेक्ट करता है। यदि आप इसे केवल एक विशिष्ट फ़ंक्शन के दौरान चालू करते हैं, तो कोई इनपुट कैप्चर नहीं किया जाना चाहिए। मैं मानता हूं कि यह एक बेकार समाधान है क्योंकि डायरी चालू/बंद राज्य matlab के लिए वैश्विक है, लेकिन यह आपके मामले में ठीक हो सकता है।

इसके बारे में यहाँ और अधिक पढ़ें: Diary matlab help

4

उत्पादन मुद्रित करता है, तो कोई उत्पादन तर्क अनुरोध किया गया था पहले उत्पादन तर्क आवंटित नहीं करने के लिए है से बचने के लिए सबसे आसान तरीका:

function [aOut,b,c] = doSomething 

%# create a,b,c normally 
a = 1; 
b = 4; 
c = 3; 

%# only assign aOut if any output is requested 
if nargout > 0 
    aOut = a; 
end 
संबंधित मुद्दे