代码之家  ›  专栏  ›  技术社区  ›  Max Bender

调试时仅针对特定的循环索引

  •  2
  • Max Bender  · 技术社区  · 7 年前

    Matlab具有一些方便的特性,这些特性有助于通过函数调用轻松调试代码,如下所示:

    • "step" 在不显示函数体指令的情况下执行一行。
    • "step in" 导航到相应的函数体(如果可能)。
    • "continue" 通常执行代码行直到下一个断点。

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

    假设我想在下面的循环中快速到达一个特定的索引,例如 x=50 y=90 :

    for x=leftxlimit:rightxlimit
        for y=topylimit:botylimit
            if (toplayers2(y,x) == 0)
                ...
            end
        end
    end
    
    1 回复  |  直到 7 年前
        1
  •  5
  •   Wolfie Radu Stefan    7 年前

    你应该用 conditional breakpoints

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

    然后你可以设定条件” x == 50 && y == 50 “(或其他)使用工作空间变量和标准的Matlab表达式。

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

    如果你想在一条线上停下来 x y 价值观,简单地说你的条件在这些价值观上是真实的,比如 x == 50 && y >= 50 && y <= 60 例如。