查找在复杂程序中创建命令行输出的位置

时间:2012-04-03 18:48:09

标签: debugging matlab

我有一个庞大而复杂的MATLAB程序。在其中的某个地方,数字0正在被发射,所以当我运行它时,我看到这一次重复了很多次:

ans =

     0

看起来很乱,所以我想摆脱它。有没有简单的方法让我弄清楚输出的来源?

1 个答案:

答案 0 :(得分:7)

您有几个选择:

  • 在MATLAB编辑器中打开每个脚本/函数,这将在视觉上指示哪些行缺少终止分号(假设Code Analyzer preferences中未禁止警告)。请注意此示例函数中的橙色波浪线:

    enter image description here

  • 使用函数CHECKCODE(以前为MLINT)在脚本/函数中查找缺少终止分号的行。对于上面的示例函数:

    >> mlint('test')
    L 2 (C 4): Terminate statement with semicolon to suppress output (in functions).
    
  • 使用command echoing。这将在评估时将每行代码打印到命令窗口。然后,您所要做的就是查找不需要的输出之前的行,以找到缺少终止分号的位置。我会尝试在命令行中键入以下选项之一:

    echo name_of_your_file on;  %# Turns on echoing for the function file
    echo on all;                %# Turns on echoing for all function files
    

    预先警告......使用此选项,您可能会将很多的输出转储到命令窗口。