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

How do you parallelize MATLAB code to print all possible 3-tuples more quickly?

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