How can i use symbolic variables in a parallel Computing (parfor)?

조회 수: 6 (최근 30일)
asad
asad 2025년 3월 29일
편집: Catalytic 2025년 3월 30일
Hi guys,
I'm using 'parfor' instead of 'for' and performing some calculations with symbolic variables and matrices. However, I encountered some errors when using this function (figs belos).
Are there any solutions for this?
I attached the code.
thanks so much

채택된 답변

Matt J
Matt J 2025년 3월 29일
편집: Matt J 2025년 3월 29일
Dlu_11_1= zeros([M,N,N,M], 'sym') ;
parfor t=1:(M*N)^2
[ki,kj,j,i]=ind2sub([M,N,N,M],t);
Dlu_11_1(t)=diff(dlU_11(ki,kj),U1(i,j));
end
Dlu_11_1=reshape( Dlu_11_1 , M*N, []);
  댓글 수: 4
Matt J
Matt J 2025년 3월 29일
This might be a little bit faster,
MN=M*N;
Dlu_11_1= zeros(MN, 'sym') ;
U1=U1.';
parfor t=1:(MN)^2
[I,J]=ind2sub([MN,MN],t);
Dlu_11_1(t)=diff(dlU_11(I),U1(J));
end
U1=U1.';
Dlu_11_1=reshape( Dlu_11_1 , MN, []);
asad
asad 2025년 3월 30일
Thanks again Matt.

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

추가 답변 (1개)

Catalytic
Catalytic 2025년 3월 30일
편집: Catalytic 2025년 3월 30일
Why not simply -
Dlu_11_1 = reshape( jacobian(dlU_11, U1) , M*N,N,M);

제품


릴리스

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by