如何抑制数字?

Ist*_*har 8 matlab plot

如何在保留背景中的绘图的同时抑制图形窗口的显示以在运行结束时保存结果图?这样做的最佳做法是什么?目前,我的代码是这样的:

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)

  • `shg` 会将其带回来,例如,如果您想一次绘制一个包含大量数据的图,而不是每次添加线条时都重新绘制它。 (2认同)

Kon*_*ert 13

MathWorks参考:

为避免在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关闭所有当前开放的数据.