当我在 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
当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