Matlab:如何合法关闭程序?
我有一个正在运行的脚本,其中包含许多图形句柄,我在代码中不时地更新这些句柄。 我的目标是,当我粗暴地(用X键或Ctrl C键)关闭程序时,正确地关闭它 我已经重写了默认的关闭函数,但有时在按下它或按下Ctrl+C时仍然会得到“无效对象句柄” 我在代码中有很多句柄,应该检查每一个句柄,还是有其他方法正确地关闭图形和代码?(类似于“退出”,但没有关闭matlab IDE) 谢谢,Matlab:如何合法关闭程序?,matlab,function,handle,Matlab,Function,Handle,我有一个正在运行的脚本,其中包含许多图形句柄,我在代码中不时地更新这些句柄。 我的目标是,当我粗暴地(用X键或Ctrl C键)关闭程序时,正确地关闭它 我已经重写了默认的关闭函数,但有时在按下它或按下Ctrl+C时仍然会得到“无效对象句柄” 我在代码中有很多句柄,应该检查每一个句柄,还是有其他方法正确地关闭图形和代码?(类似于“退出”,但没有关闭matlab IDE) 谢谢, Guy.您可以使用isvalid检查句柄的有效性。你应该循环你的手柄,检查它们的有效性,如果有效的话关闭它们;您可能还应
Guy.您可以使用
isvalid
检查句柄的有效性。你应该循环你的手柄,检查它们的有效性,如果有效的话关闭它们;您可能还应该在那里扔一个try…catch
,以便更好地测量。比如:
function figure1_DeleteFcn(hObject, eventdata, handles)
errList = [];
for nHndl = 1:length(handles.myHandles)
if isvalid(handles.myHandles(nHndl))
try
delete(handles.myHandles(nHndl));
catch err
errList = [errList err];
end
end
end
if length(errList) == 1
error([mfilename ':ErrorClosingUI'], 'Error closing UI : %s', errList.message);
elseif length(errList) > 1
% Should probably do something smarter with the error messages here
error([mfilename ':ErrorClosingUI'], 'Multiple errors occurred closing UI');
end