2012-06-19 24 views
8

私は%#ok<SAGROW>のコメントを持つ多くのMATLABコードに遭遇しました。このコメントはさまざまな状況で使用されており、意味を理解できません。一例として、%#ok <SAGROW>のコメントはMATLABで何を意味しますか?

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は、Matlabが持つ静的コード解析ツールの1つです。考えられるエラーを見つけ、警告を表示します。

編集(1): 私はちょうどあなたの質問を約SAGROW、ないAGROWであることに気付きました。私はそれを見つけることができませんでした。私の推測では、これは古い/新しいmlintの構文です。

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 [warning-magssage] ...」を選択してください。 - >「この行で」は、この警告を押さえるための適切なコードを提供します。 – Adiel

関連する問題