【发布时间】:2011-05-31 05:58:08
【问题描述】:
我在 matlab 中有九个打开的图形(由另一个函数生成),我想将它们全部打印到文件中。有谁知道如何在 MATLAB 中获取所有打开图形的句柄?
我知道gcf,但它似乎并没有达到我想要的效果。
【问题讨论】:
标签: matlab matlab-figure figures
我在 matlab 中有九个打开的图形(由另一个函数生成),我想将它们全部打印到文件中。有谁知道如何在 MATLAB 中获取所有打开图形的句柄?
我知道gcf,但它似乎并没有达到我想要的效果。
【问题讨论】:
标签: matlab matlab-figure figures
有几种方法可以做到这一点。一种方法是获取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
【讨论】:
get() 和findall() 的第一个参数是句柄。提供 0 是什么意思?
0 表示。它仍然适用于较新的版本,但最好使用groot。我已经相应地更新了我的答案。
我认为findall 应该可以工作
handles=findall(0,'type','figure')
【讨论】:
最好的办法之一是不需要寻找把手。创建每个图形时,请捕获其句柄。
h(1) = figure;
h(2) = figure;
...
正如这里的一位开发人员告诉我的那样:
它们被称为句柄,因为你应该抓住它们
【讨论】:
anova1 将绘制三个)并且它们可能不会返回这些句柄
对于手柄质量,您已经得到了很好的答案。但原始问题的另一个提示 - 打印所有要归档的数字:您可以使用 publish 选项,而无需处理数字或句柄。
【讨论】: