当我在 Matlab 中关闭图形时如何打破循环?

How to break a loop when I close a figure in Matlab?

close的事件被发送到一个图形时,我想通过使用图形属性的属性 CloseRequestFcn来捕获它并想调用函数my_closereq().

h_100 = figure(100);

for k=1:100
    % some code here
    set(h_100,'CloseRequestFcn',@my_closereq)
    pause(.2);
end


function my_closereq(src,callbackdata)
%break;
disp('closed');
end

我只想 break 循环和 close 带句柄的图形 h_100 ?请告诉我,我该怎么办?

解决方案

感谢来自@Naveh 和@Hoki 的评论

h_100 = figure(100);
global isCloseCalled;
isCloseCalled = false;
set(h_100,'CloseRequestFcn',@my_closereq)

for k=1:100
    % some code here
    if isCloseCalled == true
         break;
    end
    pause(.2);
end
delete(h_100);

function my_closereq(src,callbackdata)
global isCloseCalled;
isCloseCalled = true;
disp('closed');
end

没有全局的解决方案

h_100 = figure(100);
for k=1:100 
  % some code here 
  if ishandle ( h_100 ) == false
     break;
   end
  pause(.2); 
end
If ishandle ( h_100 )
  delete(h_100);
end