修改以下Matlab Parfor循环

修改以下Matlab Parfor循环,matlab,parfor,Matlab,Parfor,在下面的parfor循环中,Matlab表示变量“sf”无法分类。然而,它在最内层循环中的定义方式似乎并不影响parfor。你能告诉我这个问题并告诉我应该如何修改这个代码段吗 parfor ii=1:1:10000 for jj=1:200 for kk=1:80 sf{kk}=fit([kk*dKy;(kk+1)*dKy],[result{kk}(ii);result{kk+1}(ii)],'exp1','lower',[kk*dKy,resul

在下面的parfor循环中,Matlab表示变量“sf”无法分类。然而,它在最内层循环中的定义方式似乎并不影响parfor。你能告诉我这个问题并告诉我应该如何修改这个代码段吗

parfor ii=1:1:10000
    for jj=1:200
        for kk=1:80
            sf{kk}=fit([kk*dKy;(kk+1)*dKy],[result{kk}(ii);result{kk+1}(ii)],'exp1','lower',[kk*dKy,result{kk}(ii)]);
            fun=@(t) sf{kk}(t).*cos(Ky(kk).*t);
            result2{ii}(jj)=0;
            result2{ii}(jj)=result2{ii}(jj)+integral(fun,Ky(kk),Ky(kk+1),'ArrayValued',true)/(2*pi);
        end
    end
end

sf
取决于并行索引
ii
。每个
sf
都需要所有核心的信息,这是不允许的/不正确的。我应该如何修改此代码?谢谢。对于初学者,put
result2{ii}(jj)=0
kk
循环之外,因为现在每次
kk
迭代都将其设置为0,然后添加一些内容。每次迭代都需要完整的
结果
单元格,以便从两个特定单元格
kk
kk+1
中提取单个值
ii
。也许这可以用一种更智能的方式来实现,因为您可以向所有工作人员广播完整的
结果
变量,而您只需要一点点。否则,除了Ander所说的之外,我认为MATLAB在
parfor
循环中的
fit
也有问题。有关
parfor
的一般信息,请阅读。