【问题标题】:Matlab parfor error. Slicing variablesMatlab parfor 错误。切片变量
【发布时间】:2018-04-05 05:45:01
【问题描述】:

我正在尝试并行化以下代码:

for m = 1:t
  dR((m-1)*3+1) = temp1(m);
  dR((m-1)*3+2) = temp2(m);
  dR(m*3) = temp3(m);
end

temp1, temp2, temp3 只是大小为 m X 1 的向量。dR 的大小是 3m X 3m。

每当我使用 parfor 而不是 for 时,代码都会指示 dR 中的错​​误。我不确定为什么。请给我一些建议。

谢谢!

【问题讨论】:

    标签: matlab parfor


    【解决方案1】:

    您没有正确“切片”dR。要运行parfor,需要根据规则described here 对输出变量进行索引。要修复您的代码,您可以这样做:

    dR = zeros(t, 3);
    parfor m = 1:t
        dR(m, 1:3) = [temp1(m), temp2(m), temp3(m)];
    end
    

    这对dR 具有正确的索引形式 - 即固定索引列表,并且循环变量显示为下标之一。

    【讨论】:

      猜你喜欢
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多