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

MATLAB: Saving all tabs of a docked figure in a single .fig file

我有一个带有 4 个选项卡的 matlab 图,这些选项卡是在 for 循环内生成的。循环内每个选项卡的图窗句柄都会被覆盖。我想按原样保存这个图 window(单个图中有 4 个选项卡 window),但是使用 savefig() 命令(在循环外使用)我只能保存最后一个选项卡。通过在循环内使用 savefig(handle,_) 命令(以及循环外的 close(handle)),我能够保存在单个文件中,但选项卡在单独的图中打开 windows。有解决方法吗?

如果您将句柄存储到选项卡组的父对象以与 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 应该会重新打开整个图。

总的来说,我建议 不要 在你创建的时候覆盖它们,这会让以后处理起来很痛苦,而且你不会通过覆盖它们真正获得任何好处每次迭代。