error using parfor in matlab // parfor中的变量无法分类

Error using parfor in matlab // The variable in a parfor cannot be classified

我有以下for循环 里面一个parfor循环

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

我收到错误消息:

The variable HF in a parfor cannot be classified.

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

我该如何解决这个问题?

因为您没有在循环外初始化 HF,当解析您的代码时,MATLAB 认为您正在修改 shared 变量 HF parfor 内。这是有问题的,因为多个工作人员不能修改相同的数据。这会导致您看到的错误。

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

HF = zeros(NN, NN);

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