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

Matlab 调试时只需指定特定的循环索引,matlab,loops,debugging,Matlab,Loops,Debugging,MATLAB具有一些方便的功能,有助于通过函数调用轻松调试代码,如下所示: 执行一行而不显示函数体指令的步骤 “单步执行”,尽可能导航到相应的功能体 “继续”通常执行代码行,直到下一个断点 有没有任何方法(或者黑客,因为我在调试器工具中找不到任何选项)来加速循环迭代到所需的索引?在尺寸大于300x300的图像中手动迭代像素索引是一种荒谬的时间浪费 假设我想在下面的循环中快速达到一个特定的索引,例如x=50和y=90: for x=leftxlimit:rightxlimit for

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

  • 执行一行而不显示函数体指令的步骤
  • “单步执行”
    ,尽可能导航到相应的功能体
  • “继续”
    通常执行代码行,直到下一个断点
有没有任何方法(或者黑客,因为我在调试器工具中找不到任何选项)来加速循环迭代到所需的索引?在尺寸大于300x300的图像中手动迭代像素索引是一种荒谬的时间浪费

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

for x=leftxlimit:rightxlimit
    for y=topylimit:botylimit
        if (toplayers2(y,x) == 0)
            ...
        end
    end
end
你应该使用

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

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

通过这种方式,您可以正常运行代码(无需单步执行),并且只有当且仅当条件为true时,代码才会在该行停止


如果您想在一行上停止多个
x
y
值,只需将这些值的条件设置为true,如
x==50&&y>=50&&y。您还可以使用
dbstop
dbstop in files-spec at-LINENO If EXPRESSION
,通过编程设置断点。