Поведение довольно ясное (но мне потребовалось время, чтобы понять это ^^). Последняя вкладка, которую вы открываете, от figure_handle(2)
. Так что это активно. Все, что вы рисуете без указания оси, приходит к этой фигуре ... Итак, вы перерисовываете эту фигуру / вкладку / что угодно.
Указание оси, для которой вы хотите, чтобы эти вещи появлялись, решит вашу проблему (я сокращаю вашу имена переменных только для меня, чтобы лучше следовать коду)
fh = struct();
fh(1).fig = figure;
fh(1).tbgrp = uitabgroup;
fh(2).fig = figure;
fh(2).tbgrp = uitabgroup;
% Fig1, tab1
newtab = uitab(fh(1).tbgrp, 'Title', "tab1");
ax1 = axes(newtab);
plot(ax1,rand(1,100)*10,rand(1,100)*10);
title(ax1,'FIG 1')
xlabel(ax1,'X label')
ylabel(ax1,'Y label')
% Fig2, tab1
newtab = uitab(fh(2).tbgrp, 'Title', "tab1");
ax2 = axes(newtab);
plot(ax2,rand(1,100)*10,rand(1,100)*10);
title(ax2,'FIG 2')
xlabel(ax2,'X label')
ylabel(ax2,'Y label')
% Fig1, tab2 with legend
newtab = uitab(fh(1).tbgrp, 'Title', "tab2");
ax3 = axes(newtab);
plot(ax3,rand(1,100)*10,rand(1,100)*10);
hold(ax3, 'on')
plot(ax3,rand(1,100)*10,rand(1,100)*10);
legend(ax3,'1', '2')
title(ax3,'FIG 1')
xlabel(ax3,'X label')
ylabel(ax3,'Y label')
hold(ax3, 'off')