Using parfor with a 3d array

7 visualizaciones (últimos 30 días)
oceanmod
oceanmod el 3 de Feb. de 2021
Comentada: oceanmod el 3 de Feb. de 2021
I am trying to update a 3d array within a parfor loop. The actual code is too messy to reproduce here but the snippet of code below conveys what I am trying to do (but unable to).
a = zeros(5,5,10):
parfor t = 1:ntimes;
temp = randn(5,5); % In my actual code, this is some meaningful quantity that depends on the loop variable 't'
for k = 1:10;
a(:,:,k) = a(:,:,k) + randn(5,5);
end
end
I get an error saying matlab is unable to classiy the variable 'a'.
Is there a way I can fix this?
Thanks!

Respuestas (1)

Matt J
Matt J el 3 de Feb. de 2021
A variable in a parfor loop must belong to one of 5 categories. I cannot tell from your simplified example which category a is supposed to belong to (and neither can parfor), but the table here should help you decide:
  6 comentarios
Matt J
Matt J el 3 de Feb. de 2021
You cannot index or subscript a reduction variable.
oceanmod
oceanmod el 3 de Feb. de 2021
Ah, got it. Thanks again!

Iniciar sesión para comentar.

Categorías

Más información sobre Parallel for-Loops (parfor) en Help Center y File Exchange.

Productos


Versión

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by