Matlab parfor 错误。切片变量
Matlab parfor error. Slicing variables
我正在尝试并行化以下代码:
for m = 1:t
dR((m-1)*3+1) = temp1(m);
dR((m-1)*3+2) = temp2(m);
dR(m*3) = temp3(m);
end
temp1, temp2, temp3 只是向量,大小为 m X 1。dR 的大小为 3m X 3m。
每当我使用 parfor 而不是 for 时,代码都会指示 dR 中的错误。我不确定为什么。请给我一些建议。
谢谢!
你说得不对 "slicing" dR
。对于parfor
到运行,输出变量需要按照规则described here进行索引。要修复您的代码,您可以这样做:
dR = zeros(t, 3);
parfor m = 1:t
dR(m, 1:3) = [temp1(m), temp2(m), temp3(m)];
end
这就具有 dR
的正确索引形式 - 即固定索引列表,并且循环变量显示为下标之一。
我正在尝试并行化以下代码:
for m = 1:t
dR((m-1)*3+1) = temp1(m);
dR((m-1)*3+2) = temp2(m);
dR(m*3) = temp3(m);
end
temp1, temp2, temp3 只是向量,大小为 m X 1。dR 的大小为 3m X 3m。
每当我使用 parfor 而不是 for 时,代码都会指示 dR 中的错误。我不确定为什么。请给我一些建议。
谢谢!
你说得不对 "slicing" dR
。对于parfor
到运行,输出变量需要按照规则described here进行索引。要修复您的代码,您可以这样做:
dR = zeros(t, 3);
parfor m = 1:t
dR(m, 1:3) = [temp1(m), temp2(m), temp3(m)];
end
这就具有 dR
的正确索引形式 - 即固定索引列表,并且循环变量显示为下标之一。