首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用parallel_function (matlabpool & parfor)时出错

使用parallel_function (matlabpool & parfor)时出错
EN

Stack Overflow用户
提问于 2013-06-05 21:10:24
回答 1查看 2.4K关注 0票数 1

我想读取大量文件,对每个文件进行处理,并将每个文件的结果保存在一个.mat文件中。每个文件的处理都是独立的,所以我想尝试使用parfor。我已经编写了以下Matlab脚本文件:

代码语言:javascript
复制
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 close

代码语言:javascript
复制
Error 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 ';']);

你知道问题出在哪里吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-06 16:29:28

我不知道为什么(可能与这个issue有联系),但是通过将代码封装在一个函数中并调用该函数(而不是通过run script.m调用脚本文件),这个问题就解决了。它还需要创建一个parsave函数(参见解释here)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16940850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档