在matlab中使用parfor时出错//无法对parfor中的变量进行分类

时间:2016-05-18 13:24:25

标签: matlab parfor

我有以下 for循环 parfor循环

for j1=1:NN
    for j2=1:NN
            HF(j1,j2)=hf(mod((j1-j2),NN)+1);  
     end
end

我收到错误消息:

  

parfor中的变量HF无法分类。

我不在parfor循环之外或其他任何地方使用或定义HF。每次迭代都会创建自己的HF版本。

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

因为您没有在循环之外初始化HF,所以在解析代码时,MATLAB认为您正在{{1}内修改共享变量HF }}。这是有问题的,因为多个工作人员无法修改相同的数据。这会导致您看到的错误。

要解决此问题,您需要在循环之外显式预分配parfor以帮助MATLAB确定通过HF循环的每次迭代都在不同的 parfor

HF