for循环里面的parfor

Parfor inside for loop

我有以下简短的 Matlab 代码:

res = cell(10*100,1);
for i = 1:10
    parfor j = 1:100
        idx = ((i-1) * 100) + j;
        res(idx) = 5; 
    end
end

我收到 res(idx) = 5; 的错误。如果我不在 parfor 循环中使用变量 i 它可以工作,但我必须跟踪 i.

我该怎么做?

编辑:我已经解决了。

res = zeros(10*100,1);
for i = 1:10
    temp = zeros(100,1);
    parfor j = 1:100
        a = i;
        temp(j) = data((i-1) * 100) + j);
    end
    res((i-1)*100+1:i*100) = temp;
end

spmd
res = zeros(10*100,1);
for i = 1:10
    for j = 1:100
        idx = ((i-1) * 100) + j;
        res(idx) = 5; 
    end
end
end

解决了你的问题?