在 MATLAB 中,我正在运行一些需要一段时间才能运行的代码。我想暂停代码以检查一些变量值。有没有办法我可以做到这一点而不必从头开始重新运行代码?我不想终止程序;只是暂停它。
4 回答
您可以通过两种我知道的方式停止执行并给出命令提示符:
- 把
keyboard
你的代码放在你想停止的地方。 - 设置断点。
您可以分别使用dbcont
和恢复和停止执行。dbquit
要前进,请使用dbstep
. dbstack
让你看到你在哪里。还有更多的命令。其中任何一个的帮助页面都会为您提供其他建议。
正如 Dennis Jaheruddin 所指出的,dbstop
还有几个有用的功能值得尝试。dbstop if
特别是能够通过语法设置条件和全局(任何符合标准的行)断点。例如,dbstop if error
任何错误都会中断到调试命令提示符。他提出的一个建议(我现在这样做)是dbstop if error
在startup.m
您启动 MATLAB 时将其作为默认行为。您可能需要在文件夹中创建此文件userpath
; edit(fullfile(regexp(userpath,'^[^;]*','match','once'),'startup.m'))
.
实现您要查找的内容的一种方法是使用代码段(也称为代码单元),您可以在其中将代码划分为由带有两个百分号 (%%) 的行划分的部分。
然后,在编辑器中,您可以按ctrl+enter执行当前代码段,按ctrl+ 上/下在各段之间导航。
好吧,有 pause 命令,但是由于程序正在运行,因此您无法检查工作区中的变量内容。
您可能想要的是设置断点(请参阅调试菜单/键 F12)。
在断点处,matlab 暂停程序并进入调试模式,您可以在其中查看和编辑变量。完成后,您可以恢复暂停的程序。
我不确定 Windows 用户,但如果你运行的是 Linux,你可以在终端中使用
matlab -nodesktop
然后一旦 Matlab 启动,cd 到您的项目目录并启动您的 Matlab 脚本。现在,每当您想暂停执行时,您都可以使用ctrl-Z
. 然后恢复类型fg
。我希望这有帮助。