how do i store a matrix value inside a parfor loop?

8 Ansichten (letzte 30 Tage)
Naveen kumar Elumalai
Naveen kumar Elumalai am 17 Feb. 2018
Kommentiert: ahmad eldeeb am 18 Nov. 2022
I wanted to use the A matrix outside the parfor loop for further computation, i get an error stating "cannot run due to way variable A", is there any solution to this problem ??is there any other way to save the matrix???
thank you
N=50;
parfor n=1:Nc
b=rand(300,103);
[Q,R]=qr(b,0);
A((n-1)*(N+1)+1:n*(N+1),:)=R
end

Akzeptierte Antwort

Greg
Greg am 17 Feb. 2018
Pre-allocate A to store each R along the third dimension, then reshape it outside the loop. Iterations of parfor can't use indexing that depends on other iterations of the loop (i.e., n-1).
A = zeros(N+1,numColsofR,Nc);
parfor ...
A(:,:,n) = R;
end
reshape(permute(A,[1,3,2]),[],numColsofR);
  4 Kommentare
Naveen kumar Elumalai
Naveen kumar Elumalai am 17 Feb. 2018
This really worked out
ahmad eldeeb
ahmad eldeeb am 18 Nov. 2022
What if zeros will consume large memory?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by