2012-06-19 14 views
8

मुझे कई MATLAB कोड हैं जिनमें %#ok<SAGROW> टिप्पणियां हैं। इस टिप्पणी का प्रयोग विभिन्न परिस्थितियों में किया जाता है और मैं इसका अर्थ यह नहीं समझ सकता कि इसका क्या अर्थ है।MATLAB में% # ठीक <SAGROW> टिप्पणी का क्या अर्थ है?

एक उदाहरण के रूप:

i = 1; 
flag = true; 
for l = 1:k 
    while(flag==true) 
     if(probs(i)~=0) 
      leaves(l).val = i-1; %#ok<*SAGROW> 
      leaves(l).zero = ''; 
      leaves(l).one = ''; 
      leaves(l).prob = probs(i); 
      i = i + 1; 
      flag = false; 
     else 
      i = i+1; 
      flag = true; 
     end 
    end 
flag =true; 
end 

वहाँ instace के लिए भी इस टिप्पणी को अन्य संदर्भ हैं:

उत्तर

6

यह mlint चेतावनियों को दबाता है। इस विशिष्ट मामले में, यह किसी सरणी को पूर्व-आवंटित करने के बारे में नहीं है।

mlint मैटलैब के स्थिर कोड विश्लेषण टूल में से एक है। यह संभावित त्रुटियों को पाता है और चेतावनियां दिखाता है।

संपादित करें (1): मैं सिर्फ देखा है कि आपका सवाल के बारे में SAGROW, नहीं AGROW है। मैं इसे ढूंढ़ नहीं पाया। मेरा अनुमान है कि यह एक पुराना/नया मिलिंट वाक्यविन्यास है।

2

मुझे SAGROW के बारे में पता नहीं है, लेकिन AGROW का अर्थ यह होगा कि एक दिया गया सरणी/वेक्टर/मैट्रिक्स <name> might be growing inside a loop. Consider preallocating for speed

+0

क्या 'AGROW' प्रदर्शन को बढ़ाने के लिए सरणी/मैट्रिक्स को पूर्व-आवंटित करने के लिए MATLAB को बताता है, या यह केवल पूर्व आवंटन चेतावनी को दबाता है? – Isaac

+0

बस चेतावनी दबाएं। – glglgl

4

General answer (कोण कोष्ठक में विभिन्न मूल्यों के लिए):

प्राथमिकताएं प्रकार msgid:SAGROW -> कोड विश्लेषक।

दूसरों के लिए msgid:<your-ok-msg-id>

संपादित करें: सबसे कम तरीका, 1. टिप्पणी को हटाएं, 2. कोड के अंडरलाइन टुकड़े के कोडेनालिज़र टूलटिप को पढ़ें।

+0

आप रिवर्स कैसे करते हैं? – Eric

+1

@Eric लाल रेखांकित के साथ शब्दों पर राइट-क्लिक करें, और "Supress [चेतावनी-मैग्ससेज] ..." चुनें -> "इस लाइन पर" आपको इस चेतावनी को दबाने के लिए उचित कोड देगा। – Adiel