मुझे "डीबीस्टॉप अगर डिस्प्ले" का विचार पसंद है, हालांकि यह एक डीबीस्टॉप विकल्प नहीं है जिसे मैं जानता हूं।
यदि अन्य सभी विफल हो जाते हैं, तो अभी भी उम्मीद है। मलिंट एक अच्छा विचार है, लेकिन यदि हजारों लाइनें और कई कार्य हैं, तो आप अपराधी को कभी नहीं ढूंढ सकते हैं। इससे भी बदतर, यदि यह कोड ढीला लिखा गया है, तो दिखाई देने वाले ज़िल्ट झंडे के ज़िलियन होंगे। आप इसे कैसे सीमित करेंगे?
एक समाधान वहां अपना रास्ता प्रदर्शित करना है। मैं प्रदर्शन समारोह अधिभारित होगा। केवल अस्थायी रूप से, लेकिन यह काम करेगा। उत्पादन
ans =
stuff
के रूप में या
foo =
stuff
तब के रूप में कमांड लाइन करने के लिए छोड़ दिया जा रहा है तो यह प्रदर्शन के साथ बाहर लिखा गया है। यदि यह
stuff
के बाद बाहर आ रहा है तो disp अपराधी है। इससे क्या फर्क पड़ता है? अपराधी को अधिभारित करें।अपने MATLAB खोज पथ के शीर्ष पर स्थित कुछ निर्देशिका में एक नई निर्देशिका बनाएं, जिसे @double कहा जाता है (यह मानते हुए कि आउटपुट एक डबल चर है। यदि यह चरित्र है, तो आपको एक @char निर्देशिका की आवश्यकता होगी।) @ MATLAB खोज पथ पर स्वयं डबल निर्देशिका, बस इसे अपने पथ पर कुछ निर्देशिका में डालें।
इस निर्देशिका के अंदर, कमांड लाइन आउटपुट करने के आपके निर्धारण के आधार पर, disp.m या display.m नामक एक नई एम-फाइल डालें। एम-फाइल की सामग्री बिल्टिन फ़ंक्शन पर कॉल होगी, जो आपको इनपुट पर डिस्प या डिस्प्ले के बिल्टिन संस्करण को कॉल करने की अनुमति देगी।
अब, नए फ़ंक्शन के अंदर एक डिबगिंग बिंदु सेट करें। स्क्रीन पर हर बार आउटपुट उत्पन्न होता है, यह फ़ंक्शन कॉल किया जाएगा। यदि कई घटनाएं हैं, तो आपको डीबगर का उपयोग करने की आवश्यकता हो सकती है ताकि प्रजनन को फंसे होने तक प्रसंस्करण की अनुमति दी जा सके। आखिरकार, यह प्रक्रिया आक्रामक रेखा को फंस जाएगी। याद रखें, आप डीबगर में हैं! यह निर्धारित करने के लिए डीबगर का प्रयोग करें कि कौन सा फ़ंक्शन डिस्प और कहां कहलाता है। आप विवाद या प्रदर्शन से बाहर निकल सकते हैं, या यह देखने के लिए कि क्या हुआ है, बस डीबीस्टैक की सामग्री देखें।
जब सब कुछ किया जाता है और समस्या की मरम्मत की जाती है, तो इस अतिरिक्त निर्देशिका को हटाएं, और आपके द्वारा डाले गए डिस्प/डिस्प्ले फ़ंक्शन को हटा दें।
ओह, मुझे इससे नफरत है। मेरी इच्छा है कि जब भी इसे अर्धविराम के बिना बयानों का सामना करना पड़ता है तो त्रुटि को फेंकने के लिए MATLAB में वैश्विक सेटिंग होना संभव था। –
यह disp (str2num (FOO)) होने के समाप्त हो गया; कोड में गहरी गड़बड़ी हुई। चाल यह महसूस कर रही थी कि आउटपुट एक ही समय था, सभी 200 गीगा डेटा फ़ाइलों के माध्यम से खोज रहा था, और उस मूल्य को ढूंढ रहा था। यह पता लगाने के लिए कि आंतरिक चर में वह मान था, और फिर उस मान के साथ कोड में प्रत्येक संदर्भ को ट्रैक करना। प्रस्तावित दृष्टिकोणों का उपयोग करने के लिए बहुत सी लिंट त्रुटियों के साथ कोड की बहुत सारी पंक्तियां। धन्यवाद!!!! – John
हां, लेकिन ओवरलोडिंग डिस्प्ले की मेरी चाल जल्दी से काम करेगी। –