Azzera filtri
Azzera filtri

Correct error in parfor loop

1 visualizzazione (ultimi 30 giorni)
xiaohuo
xiaohuo il 10 Mar 2022
Commentato: xiaohuo il 10 Mar 2022
I am working on a parfor loop in MatLab R2021b, shown below. But there are errors: Valid indices for 'Time_h1' and 'HD_Top' are restricted in PARFOR loops. I would like to how to solve this issue? Thanks.
parfor j = 1:nk2
if abs(ID_sat) < 1e-5
T_mesh(nt,j) = 11;
Time_h1 (1:11,j) = 0:t_final/10:t_final; % error: restricted in PARFOR loops
HD_Top (1:11,j) = 0; % error: restricted in PARFOR loops
else
...
end
end

Risposta accettata

Walter Roberson
Walter Roberson il 10 Mar 2022
parfor j = 1:nk2
if abs(ID_sat) < 1e-5
T_mesh(nt,j) = 11;
h1 = Time_h1(:,j);
HT = HD_top(:,j);
h1(1:11) = 0:t_final/10:t_final;
Time_h1(:,j) = h1;
HT(1:11) = 0;
HD_Top(:,j) = HT;
else
...
end
end
  4 Commenti
Walter Roberson
Walter Roberson il 10 Mar 2022
When you assign to an array that is indexed by a parfor variable, each index has to be either scalar or the : operator; when you read from an array that is indexed by a parfor variable, each index has to be either scalar or the : operator.
t1 = Time_h1(:,j); %okay because it uses :
t1(1:T_mesh00) = Surface_flux(1:T_mesh00,1); %okay because it is not indexed by j
Time_h1(:,j) = t1; %okay because it uses :
xiaohuo
xiaohuo il 10 Mar 2022
Thanks.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Prodotti


Release

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by