你能不能在Matlab中关闭一个给定的窗口?

你能不能在Matlab中关闭一个给定的窗口?,matlab,plot,window,Matlab,Plot,Window,我运行了长时间的模拟,并将结果绘制在给定的绘图窗口上以进行比较。如果我不小心关闭了绘图窗口,这些绘图将丢失,我必须重复模拟。是否有办法使给定的绘图窗口无法关闭(例如,禁用“X”图标) 当然,一个简单的替代方法是将结果保存在变量中,并运行一个小的绘图脚本来绘图,但我发现在这种情况下,这种方法不太方便。您需要将实际的关闭窗口请求替换为“惰性”请求。以下代码应该执行您想要的操作: figure('CloseRequestFcn', @(h,e) fprintf(1, 'Not allowed, use

我运行了长时间的模拟,并将结果绘制在给定的绘图窗口上以进行比较。如果我不小心关闭了绘图窗口,这些绘图将丢失,我必须重复模拟。是否有办法使给定的绘图窗口无法关闭(例如,禁用“X”图标)


当然,一个简单的替代方法是将结果保存在变量中,并运行一个小的绘图脚本来绘图,但我发现在这种情况下,这种方法不太方便。

您需要将实际的关闭窗口请求替换为“惰性”请求。以下代码应该执行您想要的操作:

figure('CloseRequestFcn', @(h,e) fprintf(1, 'Not allowed, use "close %d force"\n.', h));

请注意,这并不是不可能的:它可以防止意外关闭窗口,但如果你的同事开玩笑,比如干扰你的工作,那么这需要在人的层面上解决,而不是在编程层面上解决。

谢谢,这正是我需要的。如果我想关闭窗口,我该如何还原它?@mwij您可以按照
printf
调用中的建议关闭窗口,或者使用
set(h,'CloseRequestFcn',@closereq)
其中
h
是窗口的句柄。但这只会设置处理程序,而不会关闭窗口。