我在matlab中有九个开放数字(由另一个函数生成),我想将它们全部打印到文件中。有谁知道如何抓取MATLAB中所有开放数字的句柄?
我知道gcf
,但它似乎没有做我想要的。
答案 0 :(得分:77)
有几种方法可以做到这一点。一种方法是获取root object的所有子项(在句柄0
的先前版本中表示):
figHandles = get(groot, 'Children'); % Since version R2014b
figHandles = get(0, 'Children'); % Earlier versions
或者你可以使用函数findobj
:
figHandles = findobj('Type', 'figure');
如果任何数字有hidden handles,您可以改为使用findall
函数:
figHandles = findall(groot, 'Type', 'figure'); % Since version R2014b
figHandles = findall(0, 'Type', 'figure'); % Earlier versions
答案 1 :(得分:16)
最好的事情之一就是不需要寻找手柄。创建每个图形时,捕获其句柄。
h(1) = figure;
h(2) = figure;
...
正如这里的一位开发人员告诉我的那样:
它们被称为句柄,因为你应该坚持它们
答案 2 :(得分:11)
我认为findall应该有用
handles=findall(0,'type','figure')
答案 3 :(得分:6)
你可以得到手柄质量的精美答案。但原始问题的另一个提示 - 打印所有要提交的数据:您可以使用publish
选项,而无需处理figrues或句柄。