Parfor里面的循环

时间:2015-05-28 18:58:10

标签: matlab parfor

我有以下简短的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

1 个答案:

答案 0 :(得分:1)

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

解决你的问题?