我想读取大量文件,对每个文件进行处理,并将每个文件的结果保存在一个.mat文件中。每个文件的处理都是独立的,所以我想尝试使用parfor。我已经编写了以下Matlab脚本文件:
load filelist
obj = package.name.SomeObject();
matlabpool local 5
parfor i=1:length(filelist)
result = obj.compute(filelist{i});
[~, name, ~] = fileparts(filelist{i});
save(['~/path/' name], 'result');
end % file loop
matlabpool closeError using parallel_function (line 589)
Undefined function or variable "cleaner".
Error in readfiles (line 14)
parfor i=1:length(filelist)
Error in run (line 64)
evalin('caller', [script ';']);你知道问题出在哪里吗?
发布于 2013-06-06 16:29:28
我不知道为什么(可能与这个issue有联系),但是通过将代码封装在一个函数中并调用该函数(而不是通过run script.m调用脚本文件),这个问题就解决了。它还需要创建一个parsave函数(参见解释here)。
https://stackoverflow.com/questions/16940850
复制相似问题