필터 지우기
필터 지우기

Correct error in parfor loop

조회 수: 1 (최근 30일)
xiaohuo
xiaohuo 2022년 3월 10일
댓글: xiaohuo 2022년 3월 10일
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

채택된 답변

Walter Roberson
Walter Roberson 2022년 3월 10일
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
Walter Roberson
Walter Roberson 2022년 3월 10일
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 2022년 3월 10일
Thanks.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by