我的m文件根据参数打开数字.有时是一个数字,有时会打开2个数字.
如果用户调用该功能,则会显示数字.如果他再次使用其他参数调用该函数,我将在新图之前用clf清除数字.
如果第二个调用设置为仅绘制一个数字,则第二个调用(由前一个调用打开)保持灰色(因为clf).
有没有办法检查它是否打开并关闭它?
close all
将关闭所有未结数字.
您可以findobj()
通过指定搜索参数来查找可能存在的对象.例如:
figure('name','banana')
创建一个名为banana的图形.
close(findobj('type','figure','name','orange'))
什么都不做,因为没有数字打开,名称为橙色.
close(findobj('type','figure','name','banana'))
关闭数字.
您可以指定搜索参数以满足您的需求.
我对"开放"的含义有点不清楚.数字实际上没有"开放"或"封闭"状态.他们要么存在,要么不存在.该图命令将返回的句柄它使数字:
hFig = figure(...your arguments here...);
您还可以从FINDOBJ函数中获取一个图形句柄,它将找到与您传递给它的属性值匹配的所有图形对象:
hFig = findobj(...your property/value pairs here...);
您可以使用以下任一命令删除数字:
close(hFig); delete(hFig);
您可以使用ISHANDLE函数检查是否已关闭/删除了数字:
ishandle(hFig) %# Returns 'true' if the figure exists, 'false' if it doesn't
数字也可以是"可见的"或"不可见的".他们有一个'Visible'
属性,您可以获取或设置值:
get(hFig,'Visible') %# Returns 'on' or 'off' set(hFig,'Visible','off') %# Makes a figure invisible, but it still %# exists (i.e. it's not closed)
如果你想检查一个数字是否被最小化,那可能会有点困难.我相信有一些文件可以帮助您在MathWorks文件交换中使用它:这是一个要检查的文件.