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

6 vues (au cours des 30 derniers jours)
asad
asad le 29 Mar 2025
Modifié(e) : Catalytic le 30 Mar 2025
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

Réponse acceptée

Matt J
Matt J le 29 Mar 2025
Modifié(e) : Matt J le 29 Mar 2025
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 commentaires
Matt J
Matt J le 29 Mar 2025
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 le 30 Mar 2025
Thanks again Matt.

Connectez-vous pour commenter.

Plus de réponses (1)

Catalytic
Catalytic le 30 Mar 2025
Modifié(e) : Catalytic le 30 Mar 2025
Why not simply -
Dlu_11_1 = reshape( jacobian(dlU_11, U1) , M*N,N,M);

Produits


Version

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by