调试时只需要特定的循环索引

Max*_*der 2 debugging matlab loops

MATLAB有一些方便的功能,有助于通过函数调用简化代码调试,如下所示:

  • "step" 执行一行而不显示函数体指令.
  • "step in" 如果可能,导航到相应的函数体.
  • "continue" 通常执行代码行直到下一个断点.

有没有办法(或黑客,因为我发现在调试工具中找不到任何选项)来加速循环迭代到所需的索引?手动迭代大于300x300的图像中的像素索引是荒谬的浪费时间.

比方说,我想在下面的循环迅速达到一个特定的指数,例如x=50y=90:

for x=leftxlimit:rightxlimit
    for y=topylimit:botylimit
        if (toplayers2(y,x) == 0)
            ...
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

Wol*_*fie 5

您应该使用条件断点

在循环中设置断点,右键单击并选择"设置/修改条件".

然后,您可以x == 50 && y == 50使用工作空间变量和标准MATLAB表达式设置条件" "(或其他任何内容).

这样,你可以正常运行代码(没有步进),当且仅当条件为真时,它才会在该行停止.

如果你想在一行中停留多个x或多个y值,只需将你的条件表示为对这些值的真实x == 50 && y >= 50 && y <= 60,例如.

  • 你也可以使用`dbstop`编写断点:在LINENO的FILESPEC中使用`dbstop,如果是EXPRESSION`. (2认同)