有没有办法从ctrl + c这样的调试器中停止执行matlab程序,但是能够继续执行(比如你可以说c#)?
如果没有,除了尝试在matlab代码中预先设置断点或dbstop语句之外,还有更好的解决方法吗?
我希望能够中断长时间运行的模拟以查看当前状态,然后继续模拟.
我目前使用/考虑的两个选项是
代码中的dbstop命令(或(条件)断点).缺点是有时候我不想停止模拟几个小时,有时候想要在几秒钟之后停止(我不一定知道提前知道)并且这对这种方法不起作用:如果我将中断条件设置为每5分钟中断一次,我就不能让matlab在没有交互的情况下运行数小时.如果我将条件设置得更高,我必须等待太久才能达到条件.
包括每隔几秒/几分钟保存工作空间的代码,并将工作空间导入第二个matlab实例.缺点是这是一个巨大的麻烦,也不一定允许我使用已保存工作空间的状态恢复模拟,然后逐步执行代码几次迭代.
我希望有比2中任何一个更好的解决方案.感谢任何建议!
编辑:我认为我要做的是编写简单的matlab函数,每次迭代检查环境变量或磁盘上的文件,如果我在此文件或env中设置了一个标志,则调用dbstop.通过这种方式,我可以通过编辑文件来控制断点从matlab外部命中的时间(如果需要的话).凌乱,但应该工作.
我在Matlab中编写了一个长期运行的脚本,例如
tic;
d = rand(5000);
[a,b,c] = svd(d);
toc;
Run Code Online (Sandbox Code Playgroud)
它似乎永远在运行.我想在编辑器窗口按F5.所以我不能按C-Break来停止在Matlab控制台中.
我只是想知道如何停止脚本.我目前正在使用任务管理器杀死Matlab,这真的很傻.
谢谢.
我有 5 个变量A、V、h、l和b,它们都来自不同的分布。我想通过拉丁超立方体采样的方法从每个分布中制作 1,000 个均匀分布的样本。这是一个现实的要求,即它真的比简单的随机抽样更好吗?你有任何关于我如何在 matlab 中做到这一点的参考吗?此页面表明我需要以某种方式转换样本...