我有一个matlab图,在for循环中生成了4个制表符。循环内的每个选项卡都会覆盖图形句柄。我想保存这个图形窗口(在单个图窗口中有4个选项卡),但是使用savefig()命令(在循环外部使用)我只能保存最后一个选项卡。使用循环内部使用的savefig(句柄,_)命令(以及循环外的关闭(句柄)),我可以保存在单个文件中,但选项卡在单独的图形窗口中打开。这有解决方法吗?
答案 0 :(得分:2)
如果将句柄存储到选项卡组的父级以与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');
打开test.fig
应重新打开整个数字。
作为一般情况,我会建议不在创建它们时覆盖它们,这使得以后解决这个问题变得很痛苦,并且通过每次迭代覆盖它们都不会获得任何好处