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

dum*_*ter 4 debugging matlab

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

ans =

     0
Run Code Online (Sandbox Code Playgroud)

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

gno*_*ice 7

你有几个选择:

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

    在此输入图像描述

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

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

    echo name_of_your_file on;  %# Turns on echoing for the function file
    echo on all;                %# Turns on echoing for all function files
    
    Run Code Online (Sandbox Code Playgroud)

    预先警告......您可能会使用此选项将大量输出转储到命令窗口.