How to use parfor
4 ビュー (過去 30 日間)
古いコメントを表示
The original code is as follows, which I would like to convert to parallel using "parfor"
for rownum=1:rows
for size=1:half
flip=cols-size+1 o1=original(rownum,flip,1);
o2=original(rownum,flip,2);
o3=original(rownum,flip,3);
original(rownum,flip,1)=original(rownum,size,1);
original(rownum,flip,2)=original(rownum,size,2);
original(rownum,flip,3)=original(rownum,size,3); original(rownum,size,1)=o1;
original(rownum,size,2)=o2;
original(rownum,size,3)=o3;
end
endHelp needed, Thanks in advance.
0 件のコメント
回答 (1 件)
OCDER
2018 年 6 月 6 日
Are you trying to flip the matrix along the 2nd dimension?
original = flip(original, 2)
Can't do parfor in your case because the indexing to original is inconsistent within the for loops, as in you cannot do this:
parfor j = 1:3
for k = 1:3
A(j, k) = -1; %MATLAB: got it, will refer to A via A(j, k) indexing
A(j, 3-k+1) = -2; %ERROR! A must be referred to via same index schemes
%Must use A(j, k) all the way through inside parfor
end
end
Also, do not override matlab built-in functions such as flip and size, as this will cause issues. To learn more about these, type this in your command window:
>> help size
>> help flip
To prevent overriding MATLAB functions accidentally, use variable names starting with Capital letters EX:
for Size = 1:half %OK! Size will not override size.m
...
end
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!