如何在matlab中不显示保存/打印

如何在matlab中不显示保存/打印,matlab,plot,Matlab,Plot,我在Matlab中显示结果时遇到问题。根据我的任务,该脚本计算了200多个绘图,因此显示它们对我的计算机来说很困难。我已决定保存结果而不显示 例如: figure('visible', 'off'); plot(1:10,rand(1,10)) figure('visible', 'off'); plot(1:10,rand(1,10)) ... figure('visible', 'off'); plot(1:10,rand(1,10)) 要打印它们,我将创建一个列表: list_of_

我在Matlab中显示结果时遇到问题。根据我的任务,该脚本计算了200多个绘图,因此显示它们对我的计算机来说很困难。我已决定保存结果而不显示

例如:

figure('visible', 'off');
plot(1:10,rand(1,10))
figure('visible', 'off');
plot(1:10,rand(1,10))

...
figure('visible', 'off');
plot(1:10,rand(1,10))

要打印它们,我将创建一个列表:

list_of_plots = findobj(allchild(0), 'flat', 'Type', 'figure');
并使用循环打印/保存它们

dstr = datestr(now, 'dd-mmm-yyyy_HHMMSS');
for iFig = 1:length(FigList)
  FigHandle = FigList(iFig);
  set(0, 'CurrentFigure', FigHandle);
  fileNamefig = [dstr, '_',flname, '_Num',  num2str(10),'_h', num2str(iFig), '.jpg'];
  print(FigHandle, '-djpeg','-r600',['folder_adress',fileNamefig])
end

脚本会保存/打印它们,但也会显示它们……为什么会发生这种情况<代码>图形(“可见”、“关闭”)有错吗?

应该可以。但是为什么不在绘图时保存每个图形,然后再次关闭它(或将图形重新用于下一个绘图)?我无法重现此问题,您的问题提供了良好的上下文,但缺少
mcve
。例如,如果我创建一个图形,使用
findobj
获取一个句柄,然后打印该图形,那么所有这些都可以在不使图形可见的情况下工作。如果你有一个最小的例子来说明其他情况,那会很有帮助。Cris的建议很好,可以最大限度地降低创建数百个不可见图形的风险,这最终会降低MATLAB的速度并占用大量内存-您至少应该在完成打印时删除图形。您也可以使用此代码段
s=hgexport调用MATLAB的图形导出,而不是打印('readstyle',ExpStyl);s.Format='jpeg';hgexport(fh,FileName,s);
(当然,您需要指定样式;)