MATLAB:将停靠图形的所有选项卡保存在单个.fig文件中

MATLAB:将停靠图形的所有选项卡保存在单个.fig文件中,matlab,matlab-figure,Matlab,Matlab Figure,我有一个matlab图,其中有4个选项卡,它们是在for循环中生成的。循环中的每个选项卡都会覆盖地物控制柄。我想按原样保存此地物窗口(在单个地物窗口中有4个选项卡),但使用savefig()命令(在循环外部使用)只能保存最后一个选项卡。通过在循环内部使用savefig(handle,u)命令(以及循环外部的close(handle)),我可以保存在单个文件中,但选项卡在单独的图形窗口中打开。有解决办法吗 如果将句柄存储到要与savefig()一起使用的选项卡组的父对象,则还应保存所有子对象 例如

我有一个matlab图,其中有4个选项卡,它们是在for循环中生成的。循环中的每个选项卡都会覆盖地物控制柄。我想按原样保存此地物窗口(在单个地物窗口中有4个选项卡),但使用savefig()命令(在循环外部使用)只能保存最后一个选项卡。通过在循环内部使用savefig(handle,u)命令(以及循环外部的close(handle)),我可以保存在单个文件中,但选项卡在单独的图形窗口中打开。有解决办法吗

如果将句柄存储到要与
savefig()
一起使用的选项卡组的父对象,则还应保存所有子对象

例如:

h.mainfig = figure();
h.tabgroup = uitabgroup(h.mainfig, 'Position', [.05 .1 .9 .8]);

ntabs = 4;

for ii = 1:ntabs
    h.tab(ii) = uitab(h.tabgroup, 'Title', sprintf('Tab_%i', ii));
end

% Make a sample plot on tab 2
h.axes(2) = axes('Parent', h.tab(2));
plot(h.axes(2), 1:10);

savefig(h.mainfig, 'test.fig');
打开
测试。图
应重新打开整个图


除此之外,我建议您不要在创建内容时覆盖它们,这会让您以后很难解决,而且每次迭代都覆盖它们也不会带来任何好处。

谢谢您的回答。您还可以添加关于如何使用图形句柄在每个选项卡中包含子图的内容吗?如果我打印某个内容,它会在选项卡后面。您需要创建
对象,并确保其
父对象
属性设置为您希望在其上显示的选项卡。通过保存这些轴控制柄,您可以在以后的代码中专门打印到它们。我已经更新了我的答案,包括一个样本。