如何并行化下面的串行MATLAB代码?您可以假设按不同顺序打印3元组是可以的,只要打印出所有可能的排列即可。
for dt=1e-10:1e-10:1e-9
for dx=1e-7:1e-7:1e-6
for dy=1e-7:1e-7:1e-6
disp(dx)
disp(dy)
disp(dt)
end
end
end
到此为止:
dt=1e-10:1e-10:1e-9;
dx=1e-7:1e-7:1e-6;
dy=1e-7:1e-7:1e-6;
[a1, a2, a3]=meshgrid(dx,dy,dt);
answer=[a1(:) a2(:) a3(:)]
我不知道你说的";"打印";,上面的代码是for循环的矢量化版本,其中answer
中的每一行都是嵌套循环在每次迭代中吐出的3个dx,dy,dt。
另一个答案是正确的答案。但是,无论出于何种原因,如果你真的想并行打印:
numberOfThreads = 4
parpool(numberOfThreads)
parfor dt=1e-10:1e-10:1e-9
for dx=1e-7:1e-7:1e-6
for dy=1e-7:1e-7:1e-6
disp(dx)
disp(dy)
disp(dt)
end
end
end