【发布时间】:2014-10-03 15:21:18
【问题描述】:
你能在 matlab parfor 循环中使用函数吗?例如我有一个看起来像这样的代码:
matlabpool open 2
Mat=zeros(100,8);
parfor(i=1:100)
Mat(i,:)=foo();
end
在函数内部,我有一堆其他变量。特别是有一段代码看起来像这样:
function z=foo()
err=1;
a=zeros(10000,1);
p=1;
while(err>.0001)
%statements to update err
% .
% .
% .
p=p+1;
%if out of memory allocate more
if(p>length(a))
a=[a;zeros(length(a),1)];
end
end
%trim output after while loop
if(p<length(a))
a(p+1:end)=[];
end
%example output
z=1:8;
end
我在某处读到,在嵌套在 matlab parfor 循环内的 for 循环内增长的所有变量都必须预先分配,但在这种情况下,我有一个预先分配的变量,但以后可能会增长。当我使用 mlint 时,matlab 没有给我任何错误,但我想知道是否有我应该注意的问题。
谢谢,
-动作
【问题讨论】:
标签: matlab parfor matlabpool