我有这些嵌套的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
有没有人可以这样做?
答案 0 :(得分:7)
我希望您只显示极其简化的代码版本,但无论如何,通过听Matlab的大量消息和阅读文档可以找到parfor的秘密。首先,学习优秀的Matlab编码实践,并以一种方式简化代码,使数据符合Matlab在parfor
循环中的要求。
注意事项:
这是我做的一种方式,虽然这取决于你的最终申请
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