如何在保留背景中的绘图的同时抑制图形窗口的显示以在运行结束时保存结果图?这样做的最佳做法是什么?目前,我的代码是这样的:
showPlot = 1; % switch to turn plotting on/off
fig = figure(1); clf; hold on;
lineHandle = line(nan, nan);
total = 0;
for i = 1:10000
% long calculation
total = total + 1;
set(0, 'CurrentFigure', fig);
xlim([0, total]);
x = [get(lineHandle, 'XData'), total];
y = [get(lineHandle, 'YData'), rand()];
set(lineHandle, 'XData', x, 'YData', y);
drawnow;
end
% saveas(gcf, file, 'png');
Run Code Online (Sandbox Code Playgroud)
我想以这样的方式设置代码:当我将showPlot设置为0时,图形窗口没有显示,但是图表被保存到文件中.
Pur*_*uit 17
要使当前数字不可见:
set(gcf,'visible','off')
Run Code Online (Sandbox Code Playgroud)
Kon*_*ert 13
为避免在MATLAB中显示数字,您可以使用noFigureWindows选项启动MATLAB.此选项在UNIX上不可用.
matlab -noFigureWindows
Run Code Online (Sandbox Code Playgroud)
作为替代方案,您可以更改MATLAB根对象的默认图形属性:
set(0,'DefaultFigureVisible','off')
Run Code Online (Sandbox Code Playgroud)
如果要暂时禁止稍后在同一会话中可访问的新数字,可以保存数字句柄:
set(0,'DefaultFigureVisible','off');
%create invisible figure 1
h(1)=figure;
%create invisible figure 2
h(2)=figure;
set(0,'DefaultFigureVisible','on');
%show figure 1
figure(1)
Run Code Online (Sandbox Code Playgroud)
顺便说一句,close all
关闭所有当前开放的数据.