将嵌套的FOR循环转换为PARFOR循环matlab

ben*_*ake 2 parallel-processing matlab for-loop

我有这些嵌套的for循环,我想转换为parfor:

row = 1;
for i = 5 : 0.2 : 5.4
    col = 1;
    for j = 2 : 0.5 : 2.5
        matrx(row, col) = i * j;
        col = col + 1;
    end
    row = row + 1;
end
Run Code Online (Sandbox Code Playgroud)

有没有人可以这样做?

Ras*_*man 7

我希望你只显示一个非常简化的代码版本,但无论如何,通过听Matlab的大量消息和阅读文档可以找到parfor的秘密.首先学习优秀的Matlab编码实践,并以一种方式简化代码,使数据符合Matlab在parfor循环中的要求.

注意事项:

  1. Parfor循环应该是整数.
  2. 必须对所有矩阵进行分类(阅读文档).
  3. 容器矩阵应该用在嵌套for循环中

这是我做的一种方式,虽然这取决于你的最终应用

iVal = 5 : 0.2 : 5.4;
jVal = 2 : 0.5 : 2.5;

iLen = length(iVal);
jLen = length(jVal);

matrx = zeros(iLen, jLen);

parfor i = 1:iLen
    dummy = zeros(1, jLen);
    for j = 1:jLen
        dummy(j) = iVal(i) * jVal(j);
    end
    matrx(i,:) = dummy;
end
Run Code Online (Sandbox Code Playgroud)