在退出Matlab"之前以编程方式启用选项"确认

时间:2016-01-01 19:46:29

标签: matlab

我在Variable Explorer中仔细设置了一堆子窗口和标签。选项卡以深层嵌套的数据结构显示数据,因此需要进行相当多的手动浏览。

然后我偶然关闭了Matlab。哎哟。

为了防止以后出现这种情况,我找到了Confirm before exiting选项。我想以编程方式设置它,以便它可以放入我的startup.m文件中。这样,无论我使用什么计算机,只要我有我的启动。我就不会成为错误关闭Matlab的牺牲品。

是否可以使用Matlab语句启用此选项?

2 个答案:

答案 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.mfinishsav.m。第一个包括确认对话框,第二个包括保存工作区的过程。

所以你应该:

  1. 复制'finishdlg.m',
  2. 将其重命名为finish.m,然后重命名为
  3. 粘贴到当前文件夹或MATLAB可以查看的文件夹中。
  4. 这样,当你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
    

    当然你可以轻松修改它。

相关问题