如何并行化MATLAB代码以更快地打印所有可能的3元组



如何并行化下面的串行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

相关内容

  • 没有找到相关文章

最新更新