How to use parfor
조회 수: 5 (최근 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!