MATLAB

2011-02-02 17 views
20

में कई बार काउंटर हैं मेरे पास एक लूप चलाने वाला प्रोग्राम है, मैं दो बार काउंटर रखना चाहता हूं, एक लूप के लिए, जो मुझे बताएगा कि लॉगऑप के एक पुनरावृत्ति को कैसे लॉग किया गया था, और एक पूरे कार्यक्रम के लिए। मेरे सर्वोत्तम ज्ञान के लिए tic और toc केवल एक बार काम करेगा।MATLAB

उत्तर

29

आप इस टिक toc वाक्य रचना के साथ ही परिचित हैं:: यहाँ एक मोटा उदाहरण है

tic; someCode; elapsed = toc; 

लेकिन वहाँ एक और वाक्य रचना है:

start = tic; someCode; elapsed = toc(start); 

दूसरा वाक्य रचना एक ही बनाता है समय माप, लेकिन आपको एक से अधिक स्टॉपवॉच टाइमर को एक साथ चलाने का विकल्प देता है। आप एक वैरिएबल tStart पर टिक का आउटपुट असाइन करते हैं और फिर टोक को कॉल करते समय उसी वैरिएबल का उपयोग करते हैं। MATLAB टिक और उसके संबंधित toc कमांड के बीच बिताए गए समय को मापता है और सेकंड में बिताए गए समय को प्रदर्शित करता है। यह वाक्यविन्यास आपको नेस्टेड ऑपरेशंस के समय (matlab documentation of tic toc) सहित कई समवर्ती संचालन करने में सक्षम बनाता है।

यहां अपने मामले में इसका उपयोग कैसे करें।

for i = 1:M 
    someCode; 
end 

सम्मिलित टिक और toc इस तरह::

startLoop = tic; 
for i = 1:N 
    startIteration = tic; 
    someCode; 
    endIteration = toc(startIteration); 
end 
endLoop = toc(startLoop); 

तुम भी एक वेक्टर जिसके लिए ith तत्व समय माप है बनाने के लिए ऊपर सिंटैक्स का उपयोग कर सकते हैं का कहना है कि यह अपने कोड है चलो ith पुनरावृत्ति के लिए। इस तरह:

startLoop = tic; 
for i = 1:N 
    startIteration(i) = tic; 
    someCode; 
    endIteration(i) = toc(startIteration(i)); 
end 
endLoop = toc(startLoop); 
2

आप टिक टिक के लिए और समय नेस्ट संचालन के toc उपयोग कर सकते हैं, मैटलैब मदद से:

tStart=tic; any_statements; toc(tStart); एक ही समय माप करता है, लेकिन आप एक से अधिक स्टॉपवॉच टाइमर समवर्ती चलाने का विकल्प देता है। आप एक वैरिएबल tStart पर टिक का आउटपुट असाइन करते हैं और फिर टोक को कॉल करते समय उसी वैरिएबल का उपयोग करते हैं। MATLAB टिक और उसके संबंधित toc कमांड के बीच बिताए गए समय को मापता है और सेकंड में बिताए गए समय को प्रदर्शित करता है। इस वाक्य रचना नेस्टेड संचालन

1

मैं अब इस अधिकार की कोशिश करने में सक्षम नहीं कर रहा हूँ के समय सहित कई समवर्ती संचालन, समय के लिए सक्षम बनाता है, लेकिन यदि आप में tic मान संग्रहीत कई tic और toc बयानों का उपयोग करने में सक्षम होना चाहिए चर।

इस पर Matlab's documentation पढ़ें, वहां घोंसले पर भी एक अनुभाग है।

tStartOverall = tic; 

... 

tStartLoop = tic; 
<your loop code here> 
tEndLoop = toc(tStartLoop); 

... 

tEndOverall = toc(tStartOverall);