我有以下简短的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
答案 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
解决你的问题?