如何在"全部清除"后恢复MATLAB中的断点?

Sha*_*ant 22 matlab breakpoints

我习惯用它来开始我所有的MATLAB脚本clear all; close all; clc.虽然它是一个非常有用的线,但只要它执行,它就会消除我的所有断点.有一种简单的方法可以避免这种情况吗?

Jon*_*nas 23

我通过创建保存和重新加载断点的脚本解决了这个问题.为方便起见,您甚至可以将其放入快捷方式.

%# store breakpoints
tmp = dbstatus;
save('tmp.mat','tmp')

%# clear all
close all
clear classes %# clears even more than clear all
clc

%# reload breakpoints
load('tmp.mat')
dbstop(tmp)

%# clean up
clear tmp
delete('tmp.mat')
Run Code Online (Sandbox Code Playgroud)

  • @ShashankSawant:`dbstop(tmp)`设置存储在变量`tmp`中的断点.将它放入快捷方式,在Matlab用户界面中查找"新快捷方式"的位置,然后将解决方案复制粘贴到那里,或创建脚本并写入脚本名称,在其中键入要在执行时运行的代码快捷方式. (2认同)
  • 好的解决方案 一旦失败的情况是使用Matlab类方法,因为奇怪的命名复杂性.在`dbstatus`结构中,类方法存储为`classname.methodname`但它们必须恢复为`classname/methodname`(注意斜杠而不是点).所以在`tmp = dbstatus;`之后应该有一个中间步骤,它用正斜杠替换`name`字段中的所有点. (2认同)

Mat*_*eau 8

clear all是一把重锤.例如,它还会转储已存储在内存中的所有已解析的MATLAB代码.简单clear其他选项通常是更好的选择,不会擦除您的断点.