我在学习中使用 Matlab 有一段时间了,想了解更多关于并行计算的知识。Parfor 似乎是一种非常有用的技术。我无法让它与以下代码一起使用:
resultsOfRW = ones(100,N);
parfor i= 1:100
RWs{i} = A; %I want to modify A in every iteration
j = 1;
S = 2; %just something larger than 1
while j <= N && S > 1
RWs{i} = DoSomethingRandomly(RWs{i}); % Make some (stochastic) change to RWs{i}
S = GetSomeResultFrom(RWs{i});
resultOfRW(i,j) = S; %This is invalid
j = j+1;
end
end
现在,我知道它与索引 j 有关,这对切片变量无效。但我不明白为什么,因为并行运行它是完全有效的。
除了为什么,我怎么能实现它来并行运行它?