9

%#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については、このコメントへの他の参照もあります。

4

3 に答える 3

7

mlint警告を抑制します。この特定のケースでは、アレイを事前に割り当てないことについてです。

mlintは、Matlabが持つ静的コード分析ツールの1つです。考えられるエラーを検出し、警告を表示します。

Edit(1):あなたの質問がについてSAGROWであり、ではないことに気づきましたAGROW。見つかりませんでした。私の推測では、これは古い/新しいmlint構文です。

于 2012-06-19T09:55:47.250 に答える
6

一般的な回答(山括弧内のさまざまな値の場合):

msgid:SAGROW「設定」->「コードアナライザー」と入力します。

他の人のためmsgid:<your-ok-msg-id>に。

編集: 最短の方法、1。コメントを削除、2。下線付きのコードのcodeanalyzerツールチップを読みます。

于 2014-09-09T22:26:25.273 に答える
3

についてはわかりませんがSAGROWAGROW特定の配列/ベクトル/行列を意味し<name> might be growing inside a loop. Consider preallocating for speedます。

于 2012-06-19T09:58:11.887 に答える