【问题标题】:What does %#ok<SAGROW> comment mean in MATLAB?%#ok<SAGROW> 注释在 MATLAB 中是什么意思?
【发布时间】:2012-06-21 08:24:03
【问题描述】:

我遇到过许多具有%#ok&lt;SAGROW&gt; cmets 的 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

此评论也有其他参考,例如:

【问题讨论】:

    标签: matlab comments


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • AGROW 是告诉 MATLAB 预分配数组/矩阵以提高性能,还是只是抑制预分配警告?
      【解决方案3】:

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

      在首选项 -> 代码分析器中键入 msgid:SAGROW

      对于其他人msgid:&lt;your-ok-msg-id&gt;

      编辑: 最短的方法,1.删除注释,2.阅读下划线代码的codeanalyzer工具提示。

      【讨论】:

      • 你是怎么做反向的?
      • @Eric 右键单击​​带有红色下划线的单词,然后选择“Supress [warning-magssage]...”->“On this line”将为您提供抑制此问题的正确代码警告。
      猜你喜欢
      • 2014-05-02
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 2022-11-18
      • 2021-05-04
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多