当我在Matlab中关闭一个数字时如何打破循环?

时间:2015-07-05 09:21:06

标签: matlab loops matlab-figure break

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循环AND close带有句柄h_100的数字?请告诉我,我该怎么办?

2 个答案:

答案 0 :(得分:1)

没有全局

的解决方案
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

答案 1 :(得分:0)

感谢来自@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