Slicing structure variable in parfor loop
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi,
I'd like to use a parfor loop instead of a for loop in some code I have written. I currently call a function within a for loop to which I input a structure 'photon'. However, I would only like to input certain entries from the fields within this structure: e.g.
%%loop over all bins
parfor bin = 1:numel(s_uniq)
% determine current step length
s_crnt = s_uniq(bin);
% create photon wight property with photons currently being simulated
photon_crnt.W = photon.W(s_int==s_crnt);
MLint tells me I cannot use 'photon' in this way and that I should slice it. I have tried to do this but continue getting this message.
I'd appreciate your help.
Thanks!
0 comentarios
Respuestas (1)
Walter Roberson
el 19 de Jun. de 2012
Each of your loops is writing over the same fieldname in the same structure array entry, photon_crnt.W . You cannot do that unless photon_crnt is a variable that is local to the parfor loop.
If you were to write to photon_crnt(bin).W then that would be allowed by parfor; whether it makes sense for your code is something you will need to decide.
Ver también
Categorías
Más información sobre Microelectronics, Photonics and Nanotechnology en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!