Incompatible indexing of variable for parfor

1 view (last 30 days)
Hari
Hari on 26 Sep 2022
Answered: Edric Ellis on 27 Sep 2022
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 Comments
Hari
Hari on 27 Sep 2022
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 on 27 Sep 2022
Then reshape your array in 3D
Networkr = reshape(Network, size(Nerworks,1), 3, []);
then use parforloop on the third dimension.

Sign in to comment.

Answers (1)

Edric Ellis
Edric Ellis on 27 Sep 2022
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.

Categories

Find more on Parallel for-Loops (parfor) in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!