Như đã trả lời trước đó, để ngăn chặn con số hiển thị trong instantiation đầu tiên gọi
set(0, 'DefaultFigureVisible', 'off');
% or, if post Matlab R2014b
set(groot, 'DefaultFigureVisible', 'off');
Sau cuộc gọi này, tạo ra các số liệu mới trong một kịch bản sẽ không dẫn đến một cửa sổ có thể nhìn thấy nảy lên.Đương nhiên, con đường để trở lại thiết lập này là
set(0, 'DefaultFigureVisible', 'on');
% or, if post Matlab R2014b
set(groot, 'DefaultFigureVisible', 'on');
Các "Gotcha" được rằng kích hoạt một con số hiện tại cho thao tác hơn nữa sẽ kết quả trong một cửa sổ có thể nhìn thấy - nếu được thực hiện không đúng cách:
% 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;
% ...
Các giải pháp khác là sử dụng một lệnh khác đặt để chọn các số liệu hiện có:
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
% ...
Bất kể các thiết lập của 'DefaultFigureVisible', kêu gọi
figure(h);
trong đó h là một tay cầm hoặc số nguyên cho một cửa sổ cốt truyện hiện gây ra cửa sổ đó để trở nên năng động và nhìn thấy được. Vì vậy, người ta có thể làm cho tất cả các lô có thể nhìn thấy ở dưới cùng của một kịch bản theo cách này:
fh = get(groot, 'Children');
for x = 1:numel(fh)
figure(fh(x));
end
Không có câu trả lời nào phù hợp với tôi! – Nick