我在Variable Explorer中仔细设置了一堆子窗口和标签。选项卡以深层嵌套的数据结构显示数据,因此需要进行相当多的手动浏览。
然后我偶然关闭了Matlab。哎哟。
为了防止以后出现这种情况,我找到了Confirm before exiting选项。我想以编程方式设置它,以便它可以放入我的startup.m文件中。这样,无论我使用什么计算机,只要我有我的启动。我就不会成为错误关闭Matlab的牺牲品。
是否可以使用Matlab语句启用此选项?
答案 0 :(得分:5)
这可以使用Undocumented MATLAB功能实现,因此此行为可能随时更改,恕不另行通知。
MATLAB将首选项保存在名为matlab.prf
的文件中,该文件保存在路径
fullfile(prefdir,'matlab.prf')
可以使用Java命令
读取或写入变量的值com.mathworks.services.Prefs.get<type>Pref(<pref-name>)
com.mathworks.services.Prefs.set<type>Pref(<pref-name>, newValue);
“退出MATLAB之前确认”变量是一个名为MatlabExitConfirm
的布尔值,因此您可以使用
com.mathworks.services.Prefs.setBooleanPref('MatlabExitConfirm',1)
答案 1 :(得分:2)
另一个选项如下:
事实上,当MATLAB收到exit
命令时,它首先查找脚本finish.m
,如果找到它,脚本将在程序退出之前执行。
有两个示例脚本,由MATLAB在MATLAB的...\toolbox\local
路径中提供,例如在我的安装中:
C:\Program Files\MATLAB\R2014b\toolbox\local
文件名为finishdlg.m
和finishsav.m
。第一个包括确认对话框,第二个包括保存工作区的过程。
所以你应该:
finish.m
,然后重命名为这样,当你exit
MATLAB时,它首先运行脚本,其中包含一个确认退出命令的对话框。
finishdlg.m
内的代码包括:
Yes = getString(message('MATLAB:finishdlg:Yes'));
No = getString(message('MATLAB:finishdlg:No'));
button = questdlg(getString(message('MATLAB:finishdlg:ReadyToQuit')), ...
getString(message('MATLAB:finishdlg:ExitingDialogTitle')),Yes,No,No);
switch button
case Yes,
disp(getString(message('MATLAB:finishdlg:ExitingMATLAB')));
%Save variables to matlab.mat
save
case No,
quit cancel;
end
当然你可以轻松修改它。