7

在 MATLAB 中,我正在运行一些需要一段时间才能运行的代码。我想暂停代码以检查一些变量值。有没有办法我可以做到这一点而不必从头开始重新运行代码?我不想终止程序;只是暂停它。

4

4 回答 4

6

您可以通过两种我知道的方式停止执行并给出命令提示符:

  • keyboard你的代码放在你想停止的地方。
  • 设置断点。

您可以分别使用dbcont和恢复和停止执行。dbquit要前进,请使用dbstep. dbstack让你看到你在哪里。还有更多的命令。其中任何一个的帮助页面都会为您提供其他建议。

正如 Dennis Jaheruddin 所指出的,dbstop还有几个有用的功能值得尝试。dbstop if特别是能够通过语法设置条件和全局(任何符合标准的行)断点。例如,dbstop if error任何错误都会中断到调试命令提示符。他提出的一个建议(我现在这样做)是dbstop if errorstartup.m您启动 MATLAB 时将其作为默认行为。您可能需要在文件夹中创建此文件userpathedit(fullfile(regexp(userpath,'^[^;]*','match','once'),'startup.m')).

于 2013-09-17T20:39:16.880 回答
2

实现您要查找的内容的一种方法是使用代码段(也称为代码单元),您可以在其中将代码划分为由带有两个百分号 (%%) 的行划分的部分。

然后,在编辑器中,您可以按ctrl+enter执行当前代码段,按ctrl+ 上/下在各段之间导航。

于 2013-09-17T20:32:41.673 回答
1

好吧,有 pause 命令,但是由于程序正在运行,因此您无法检查工作区中的变量内容。

您可能想要的是设置断点(请参阅调试菜单/键 F12)。

在断点处,matlab 暂停程序并进入调试模式,您可以在其中查看和编辑变量。完成后,您可以恢复暂停的程序。

于 2013-09-17T20:37:14.393 回答
1

我不确定 Windows 用户,但如果你运行的是 Linux,你可以在终端中使用

matlab -nodesktop

然后一旦 Matlab 启动,cd 到您的项目目录并启动您的 Matlab 脚本。现在,每当您想暂停执行时,您都可以使用ctrl-Z. 然后恢复类型fg。我希望这有帮助。

于 2014-03-11T10:30:05.753 回答