Incompatible indexing of variable for parfor

조회 수: 2 (최근 30일)
Hari
Hari 2022년 9월 26일
답변: Edric Ellis 2022년 9월 27일
I have a variable Network which is a cell array of size 5x12. Each cell is 76x1 double. Inside the parfor loop, in every iteration I need to use portions of the variable of size 5x3. This gives me a warning in the parfor that the variable is indexed in a way incompatible for the loop.
Here is a glimpse of my code. Can anybody suggest ways to modify the variable so that it can be made compatible with parfor loop
parfor j=1:4
sample=Network(:,(2*j)+(j-2):((2*j)+j);
........
end
  댓글 수: 5
Hari
Hari 2022년 9월 27일
The result for the code is here. I am not sure what overlapping refers to, but I think there is no overlap here. Correct me if I am wrong
for j=1:4
(2*j)+(j-2):((2*j)+j)
end
ans = 1×3
1 2 3
ans = 1×3
4 5 6
ans = 1×3
7 8 9
ans = 1×3
10 11 12
Bruno Luong
Bruno Luong 2022년 9월 27일
Then reshape your array in 3D
Networkr = reshape(Network, size(Nerworks,1), 3, []);
then use parforloop on the third dimension.

댓글을 달려면 로그인하십시오.

답변 (1개)

Edric Ellis
Edric Ellis 2022년 9월 27일
The total size in bytes of Network is 5*12*76*8 = 36480. That is tiny. Ignore the parfor "broadcast" warning - that is intended to alert you when you might accidentally be sending gigabytes to each worker. It is irrelevant in this case.

카테고리

Help CenterFile Exchange에서 Parallel for-Loops (parfor)에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by