我有以下 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版本。
如何解决此问题?
答案 0 :(得分:1)
因为您没有在循环之外初始化HF
,所以在解析代码时,MATLAB认为您正在{{1}内修改共享变量HF
}}。这是有问题的,因为多个工作人员无法修改相同的数据。这会导致您看到的错误。
要解决此问题,您需要在循环之外显式预分配parfor
以帮助MATLAB确定通过HF
循环的每次迭代都在不同的 parfor
。
HF