如何在matlab中不显示保存/打印
我在Matlab中显示结果时遇到问题。根据我的任务,该脚本计算了200多个绘图,因此显示它们对我的计算机来说很困难。我已决定保存结果而不显示 例如:如何在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_
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);
(当然,您需要指定样式;)