MATLAB调试:用一种更智能的方法停止特定条件下的代码?

MATLAB调试:用一种更智能的方法停止特定条件下的代码?,matlab,debugging,Matlab,Debugging,当我调试长段的数字代码时,如果发生了什么事情,或者在特定的迭代中,我通常希望看到函数变量的值。一般来说,我会: function banana(platano) % long stuff here for ii=1:123456789 % tons of maths if ii==45612 stophere=1; % I put a break point in this line of code end end 但是,这需要我在函数中编写代码进行

当我调试长段的数字代码时,如果发生了什么事情,或者在特定的迭代中,我通常希望看到函数变量的值。一般来说,我会:

function banana(platano)

% long stuff here

for ii=1:123456789
     % tons of maths
   if ii==45612
      stophere=1;    % I put a break point in this line of code
   end
end
但是,这需要我在函数中编写代码进行调试,这看起来不太好。有更聪明的方法吗?

其中一种方法是使用。您可以通过右键单击行号并选择
“设置条件断点…”
选项来添加它们

例如:

如本答案注释中所述,如果要使用命令行进行设置,可以使用

dbstop in filename at linenumber if condition 
例如:

dbstop in banana at 6 if ii==454345433
请注意,行号处的
if条件是可选的

更多的东西 调试器的另一个有用工具是在出现错误时中断程序,使用
dbstop if error
,如图所示


谢谢你给我看这个

我一点也不知道。我总是手动输入
if
语句,并以这种方式暂停代码。顺便说一句,如果您可以通过命令提示符而不是使用编辑器通过命令行演示如何执行此操作,那就更好了。这是可能的吗?@ RayRyGy<代码> dBeST在文件中,如果条件 @ RayRyGe<代码> BSTORT在8,如果II= 454345433</代码>安德,请考虑如何通过命令行来完成这项工作,使您的帖子完成。我们中的一些人(像我一样)不使用MATLAB的编辑器。