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)
有没有人可以这样做?
我希望你只显示一个非常简化的代码版本,但无论如何,通过听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
Run Code Online (Sandbox Code Playgroud)