Incompatible indexing of variable for parfor

1 visualizzazione (ultimi 30 giorni)
Hari
Hari il 26 Set 2022
Risposto: Edric Ellis il 27 Set 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 Commenti
Hari
Hari il 27 Set 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 il 27 Set 2022
Then reshape your array in 3D
Networkr = reshape(Network, size(Nerworks,1), 3, []);
then use parforloop on the third dimension.

Accedi per commentare.

Risposte (1)

Edric Ellis
Edric Ellis il 27 Set 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.

Categorie

Scopri di più su Parallel for-Loops (parfor) in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by