У меня есть следующий короткий код Matlab:Parfor внутри для цикла
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;
. Если я не использую переменную i в цикле parfor, она работает, но я должен отслеживать 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
Почему бы просто не сделать это с помощью одного цикла 'parfor' от' 1: (10 * 100) '? – Raab70
Это была бы возможность, но я запустил ее в кластере, и мне, скорее всего, не позволено назначать столько параллельных циклов. Нет ли возможности присвоить значение переменной i внутри петли parfor? – machinery
Вы читаете [это] (https://www.mathworks.com/help/distcomp/nesting-and-flow-in-parfor-loops.html)? – Raab70