什么%#OK 在MATLAB评论是什么意思?(What does %#ok c

2019-07-30 00:34发布

我遇到它有许多MATLAB代码%#ok<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:

  • http://www.codeproject.com/Questions/151765/answer.aspx
  • http://www.scribd.com/doc/69869075/EEE-554-Matlab-Solutions
  • http://www.mathworks.com/matlabcentral/newsreader/view_thread/321047
  • http://www.nd.edu/~jrunkle1/ballis_problem.m

Answer 1:

它抑制mlint警告。 在该特定情况下,它是关于没有预先分配的阵列。

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

编辑(1):我刚刚注意到你的问题是关于SAGROW ,不AGROW 。 我找不到。 我的猜测是,它是一个老/新mlint语法。



Answer 2:

一般的答案 (在尖括号不同的值):

类型msgid:SAGROW在首选项- >代码分析器。

对于其他msgid:<your-ok-msg-id>

编辑:最近的路,1。删除注释,2读下划线一段代码的codeanalyzer提示。



Answer 3:

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



文章来源: What does %#ok comment mean in MATLAB?