我怎么保存PNG图像使用MATLAB PCT没有遇到内存上限吗?

2视图(30天)
Matlab的大师,
我注意到使用时碰到一个内存上限 parfor 保存PNG文件,但这不是在使用 parfor 保存图文件(我试过100000图文件,和RAM举行主要是稳定。)
下面的代码可以让你看到我在说什么…
  • 绘制使用PNG图像parfor循环,运行代码方法= ' png ',要么坚持= 0坚持= 1
  • 绘制图文件,运行代码方法=“无花果”。(没有坚持选择适用于这种情况)。
在执行代码之前,一定要先…
  • 建立了一个平行池,
  • 创建了PNG_SavePathFIG_SavePath目录中所示的代码
  • 打开Windows资源监控器。
如果你想知道,我的设置有以下规格……
  • Windows 7, 16个核心,16 gb的RAM
  • 使用parpool MATLAB 2015 (14)
函数par_peaks
方法=“png”;
numfigs = 1000;
坚持= 0;% = 1时,我试图确保新的GUI
%不创建窗口如果已经存在。不是
%确定这是导致RAM爆破
%了。我仍然不确定这工作
%我认为它在multi-worker情况。一个
%的是肯定的…“保存”选项
%没有区别:内存还当策划炸毁
%的PNG文件。也许我实现了“坚持”
%代码糟糕呢?
如果strcmpi(方法,“png”)
PNG_SavePath =“C: \ ParPlotter \ PNG_SavePath \”;
如果坚持= = 0
parfor2 = 1:numfigs
PNG_Handle =图(“可见”,“关闭”);
t = getCurrentTask ();
PNG_Name = horzcat (“PNG”num2str (ii),”——TaskID”num2str (t.ID),“使用”);
[X, Y, Z] =山峰(25);
冲浪(X, Y, Z);
阿兹=兰迪([0359],1,1);
el =兰迪((-90、90),1,1);
视图(az, el);
标题(PNG_Name);
saveas (gcf [PNG_SavePath PNG_Name]);
关闭(PNG_Handle);
结束
elseif坚持= = 1
parfor2 = 1:numfigs
t = getCurrentTask ();
GUI_Name = horzcat (“TaskID”num2str (t.ID));
GUI_Handle = findobj (“类型”,“图”,“名字”,GUI_Name);
如果isempty (GUI_Handle)
图(“名字”GUI_Name,“可见”,“关闭”);
其他的
clf (GUI_Handle);
结束
PNG_Name = horzcat (“PNG”num2str (ii),”——TaskID”num2str (t.ID),“使用”);
[X, Y, Z] =山峰(25);
冲浪(X, Y, Z);
阿兹=兰迪([0359],1,1);
el =兰迪((-90、90),1,1);
视图(az, el);
标题(PNG_Name);
saveas (gcf [PNG_SavePath PNG_Name]);
%关闭(PNG_Handle);
结束
结束
elseifstrcmpi(方法,“图”)
FIG_SavePath =“C: \ ParPlotter \ FIG_SavePath \”;
parfor2 = 1:numfigs
FIG_Handle =图(“可见”,“关闭”);
t = getCurrentTask ();
FIG_Name = horzcat (“图”num2str (ii),”——TaskID”num2str (t.ID),“.fig”);
[X, Y, Z] =山峰(25);
冲浪(X, Y, Z);
阿兹=兰迪([0359],1,1);
el =兰迪((-90、90),1,1);
视图(az, el);
标题(FIG_Name);
savefig (FIG_Handle [FIG_SavePath FIG_Name),“紧凑”);
关闭(FIG_Handle);
结束
结束
结束
这样做的正确方法是什么?SPMD块吗?MDCS吗?

答案(0)

类别

找到更多的在语言基础知识帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!