【问题标题】:Converting nested FOR loops to PARFOR loop matlab将嵌套 FOR 循环转换为 PARFOR 循环 matlab
【发布时间】:2012-11-06 20:10:07
【问题描述】:

我有这些嵌套的 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

有没有人可以做到这一点?

【问题讨论】:

    标签: for-loop parallel-processing matlab


    【解决方案1】:

    我希望您只显示代码的极其简化的版本,但无论如何,通过聆听 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
    

    【讨论】:

      猜你喜欢
      • 2014-06-10
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 2020-11-26
      • 1970-01-01
      • 2021-09-16
      • 2017-08-08
      相关资源
      最近更新 更多