Как уже было сказано ранее, для подавления отображения цифр во время первого вызова
set(0, 'DefaultFigureVisible', 'off');
% or, if post Matlab R2014b
set(groot, 'DefaultFigureVisible', 'off');
После этого вызова создание новых фигур в скрипте не приведет к появлению видимого окна. Естественно, способ отменить этот параметр
set(0, 'DefaultFigureVisible', 'on');
% or, if post Matlab R2014b
set(groot, 'DefaultFigureVisible', 'on');
"Гоча" заключается в том, что активация существующей фигуры для дальнейших манипуляций приведет к появлению видимого окна - если сделано неправильно:
% suppress visible plot window creation
set(groot, 'DefaultFigureVisible', 'on');
figure(1); % will not result in a visible window
plot(0:.01:pi,sin(0:.01:pi));
hold on
figure(2); % still no visible window
plot(0:.01:10,(0:.01:10).^2);
% so far so good
% ... other statements ...
% select figure 1 to add to it:
figure(1); % visible window appears!
plot(0:.01:pi,cos(0:.01:pi));
hold off;
% ...
Обходной путь - использовать другую команду set для выбора существующих фигур:
set(groot, 'DefaultFigureVisible', 'on');
figure(1); % will not result in a visible window
plot(0:.01:pi,sin(0:.01:pi));
hold on
figure(2); % still no visible window
plot(0:.01:10,(0:.01:10).^2);
set(groot, 'CurrentFigure', 1); % still no visible window
% plot commands will apply to figure 1
plot(0:.01:pi,cos(0:.01:pi));
hold off
% ...
Независимо от настройки DefaultFigureVisible, вызов
figure(h);
где h - дескриптор или целое число для существующего окна графика, которое делает это окно активным и видимым. Таким образом, можно сделать все графики видимыми в нижней части скрипта следующим образом:
fh = get(groot, 'Children');
for x = 1:numel(fh)
figure(fh(x));
end