选项卡式图中的子图

Subplots within a Tabbed figure

对于以下脚本,subplots/plots 在执行时位于选项卡后面。如何解决?

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));
    for jj=1:2
        ax(jj)=subplot(2,1,jj);plot(1:10,sin(1:10));
    end
    linkaxes(ax,'x');
end 

这是由于错误调用了subplot;看起来 Matlab 创建了太多轴,并且由于某种原因它们被放置在选项卡上。

解决这个问题的一个安全方法是首先在进入嵌套 for 循环之前创建一个轴,然后子图将被正确放置。

示例代码:

clear
clc
close all

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

for k = 1:4

    tab(k)=uitab(tabgroup,'Title', sprintf('Tab_%i', k));
    axes('parent',tab(k))
    for jj = 1:2

        subplot(2,1,jj);

        plot(1:10,(1:10).^k);
    end
end

几张截图:

耶!