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

时间:2018-05-30 14:04:13

标签: matlab loops debugging

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

1 个答案:

答案 0 :(得分:5)

您应该使用conditional breakpoints

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

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

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

如果您希望停在多行xy值的行上,只需将您的条件设置为x == 50 && y >= 50 && y <= 60之类的值即可。