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

12 ビュー (過去 30 日間)
Naveen kumar Elumalai
Naveen kumar Elumalai 2018 年 2 月 17 日
コメント済み: ahmad eldeeb 2022 年 11 月 18 日
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

採用された回答

Greg
Greg 2018 年 2 月 17 日
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 件のコメント
Naveen kumar Elumalai
Naveen kumar Elumalai 2018 年 2 月 17 日
This really worked out
ahmad eldeeb
ahmad eldeeb 2022 年 11 月 18 日
What if zeros will consume large memory?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by