在MATLAB中%#ok <sagrow>注释意味着什么?</sagrow>

时间:2012-06-19 09:52:28

标签: matlab comments

我遇到了很多有%#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:

3 个答案:

答案 0 :(得分:6)

它抑制mlint警告。在这种特定情况下,它不是预先分配数组。

mlint是Matlab的静态代码分析工具之一。它发现可能的错误并显示警告。

修改(1): 我刚刚注意到您的问题是关于SAGROW,而不是AGROW。我找不到。我的猜测是它是一个旧的/新的mlint语法。

答案 1 :(得分:4)

General answer(对于尖括号中的不同值):

在偏好设置中输入msgid:SAGROW - &gt;代码分析器。

其他人msgid:<your-ok-msg-id>

修改 最短路,1。删除注释,2。读取下划线代码的codeanalyzer工具提示。

答案 2 :(得分:2)

我不知道SAGROW,但AGROW意味着给定的数组/向量/矩阵<name> might be growing inside a loop. Consider preallocating for speed