How to index into temporary variables within parfor

3 views (last 30 days)
Hi all,
Forgive me if this has been asked many times before. I've seen a few similar questions but nothing that fully helped me. I am trying to use a for loop to intialize the values at the indeces of a temporary variable within a larger parfor loop. The following is a "toy problem" to illustrate what I am talking about:
parfor i = 1:20
for j = 1:10
mymat(j,1) = j;
MATLAB tells me "The parfor loop cannot be run due to the way "mymat" is used." I don't know why matmat is used improperly, since it is a temporary variable that, based on my understanding, exists separately for each independent iteration of the loop. Note that I will never try to access mymat outside of each individual parfor loop, nor does one iteration of the loop need any knowledge of the information in another iteration's mymat variable.
I realize that this example looks a little silly because can be done without the nested for loop or parfor. I am just using it to illustrate the basic concept of what I am trying to do for my particular application. It is absolutely necessary that my final application has this sort of structure--is this possible somehow? Thanks!

Accepted Answer

Rashed Mohammed
Rashed Mohammed on 5 Nov 2020
Please refer to the Sliced Variables Documentation for correctly indexing variables in a parfor loop
Hope this helps !

More Answers (0)


Find more on Parallel for-Loops (parfor) in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!