本文最后更新于 2023年9月25日。
figHandles = get(0, 'Children')
figHandles = findobj('Type', 'figure')
How do I get the handles of all open figures in MATLAB
我在matlab中有9个打开的图形(由另一个函数生成),我想将它们全部打印到文件中。 有谁知道如何抓住MATLAB中所有打开的图形的句柄?
我知道gcf,但是它似乎并没有满足我的要求。
有几种方法可以做到这一点。 一种方法是获取根对象的所有子对象(在以前的版本中由句柄0表示):
figHandles = get(groot, ‘Children’); % Since version R2014b
figHandles = get(0, ‘Children’); % Earlier versions
或者您可以使用功能findobj:
figHandles = findobj(‘Type’, ‘figure’);
如果任何图都有隐藏的句柄,则可以改用功能findall:
figHandles = findall(groot, ‘Type’, ‘figure’); % Since version R2014b
figHandles = findall(0, ‘Type’, ‘figure’); % Earlier versions
相关讨论
最好的事情之一就是不需要寻找手柄。 创建每个图形时,请捕获其手柄。
正如一位开发人员告诉我的那样:
They are called handles, because you are supposed to hold on to them
相关讨论
我认为findall应该工作
handles=findall(0,’type’,’figure’)
您将获得很好的手柄质量答案。 但是,原始问题的另一个技巧是将所有图形打印到文件中:您可以使用publish选项,而无需处理图形或手柄。