当前位置:  开发笔记 > 开发工具 > 正文

MATLAB调试:更智能的方法来停止具有特定条件的代码?

如何解决《MATLAB调试:更智能的方法来停止具有特定条件的代码?》经验,为你挑选了1个好方法。

当我调试很长的数字代码时,我常常想看到函数变量值,如果发生了什么,或者在特定的迭代中.一般来说我做:

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

但是,这需要我在函数中编写代码进行调试,看起来并不好看.有更聪明的方法吗?



1> Ander Biguri..:

其中一种方法是使用条件断点.您可以通过右键单击行号并选择"Set conditional Breakpoints..."选项来添加它们.

例:

在此输入图像描述

如本答案的评论中所述,如果您想使用命令行进行设置,则可以使用

dbstop in filename at linenumber if condition 

举个例子:

dbstop in banana at 6 if ii==454345433

请注意,该at linenumberif condition是可选的.

更多的东西

如果出现错误,调试器的另一个有用工具就是打破程序,使用dbstop if error,如本问答中所示.

感谢@ Dev-il向我展示了这个!


我根本不知道.我总是手动放入`if`语句并以这种方式暂停代码.顺便说一句,如果您可以通过命令行显示如何通过命令行而不是使用编辑器来实现这一点,那就更好了.这可能吗?
@rayryeng`dbstop in banana at 8 if if = = 454345433`
Ander,考虑通过命令行添加如何执行此操作以使您的帖子完成.我们中的一些人(像我一样)不使用MATLAB的编辑器.
推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有