我在變量資源管理器中仔細設置了一堆子窗口和選項卡。這些選項卡以深度嵌套的數據結構顯示數據,因此需要相當多的手動瀏覽。以編程方式啓用選項「退出Matlab之前確認」
然後我偶然地關閉了Matlab。哎喲。
爲了防止這種情況發生,我找到了Confirm before exiting選項。我想以編程方式設置它,以便它可以放入我的startup.m文件中。這樣,無論我使用哪臺計算機,只要我有我的startup.m,我就不會陷入錯誤地關閉Matlab。
是否可以使用Matlab語句啓用此選項?
我在變量資源管理器中仔細設置了一堆子窗口和選項卡。這些選項卡以深度嵌套的數據結構顯示數據,因此需要相當多的手動瀏覽。以編程方式啓用選項「退出Matlab之前確認」
然後我偶然地關閉了Matlab。哎喲。
爲了防止這種情況發生,我找到了Confirm before exiting選項。我想以編程方式設置它,以便它可以放入我的startup.m文件中。這樣,無論我使用哪臺計算機,只要我有我的startup.m,我就不會陷入錯誤地關閉Matlab。
是否可以使用Matlab語句啓用此選項?
這可以使用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)
的其他選項如下:
事實是,當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
當然,你可以很容易地修改它。
謝謝,hbaderts。該聲明與startup.m中的廣告一致。我甚至不需要知道java。 – user36800