【问题标题】:Just to specific loop index when debugging调试时只针对特定的循环索引
【发布时间】:2018-05-30 14:04:12
【问题描述】:

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

【问题讨论】:

    标签: matlab loops debugging


    【解决方案1】:

    你应该使用conditional breakpoints

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

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

    这样,您可以正常运行代码(无需单步执行),当且仅当条件为真时,它才会在该行停止。

    如果您想针对多个 xy 值停在一条线上,只需将您的条件表述为在这些值上为真,例如 x == 50 && y >= 50 && y <= 60

    【讨论】:

    • 您还可以使用dbstop: dbstop in FILESPEC at LINENO if EXPRESSION 以编程方式设置断点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2018-03-01
    • 2014-01-01
    • 2012-08-06
    • 2012-12-07
    相关资源
    最近更新 更多