Используйте linkaxes
, как Яир и Амро уже предложили. Ниже приведен краткий пример для вашего случая
ha(1) = subplot(2,1,1); % get the axes handle when you create the subplot
plot([1:10]); % Plot random stuff here as an example
ha(2) = subplot(2,1,2); % get the axes handle when you create the subplot
plot([1:10]+10); % Plot random stuff here as an example
linkaxes(ha, 'x'); % Link all axes in x
Вы должны иметь возможность увеличить все участки одновременно
Если имеется много вспомогательных участков, и сбор их дескрипторов осей по одной не кажется разумным способом выполнить работу, вы можете найти все дескрипторы осей в данном дескрипторе рисунка с помощью следующих команд
figure_handle = figure;
subplot(2,1,1);
plot([1:10]);
subplot(2,1,2);
plot([1:10]+10);
% find all axes handle of type 'axes' and empty tag
all_ha = findobj( figure_handle, 'type', 'axes', 'tag', '' );
linkaxes( all_ha, 'x' );
Первая строка находит все объекты в figure_handle
типа «оси» и пустого тега (''). Условие пустого тега состоит в том, чтобы исключить ручки топора из легенд, тег которых будет legend
.
На вашей фигуре могут быть другие объекты осей, если это больше, чем просто график. В таком случае вам нужно добавить больше условий для определения дескрипторов осей интересующих вас участков.