Object Indices in parfor loop
Mostrar comentarios más antiguos
Hello,
I am trying to parallelize some code involving cellular signaling models. I am using an object called "ppiUpdater," which is defined by a class I've written. I am trying to call a function using that object inside a parfor loop and matlab tells me that the object ppiUpdater is not properly indexed.
Here is the code for the parfor loop:
newState=zeros(NCells, 1);
parfor iCell = 1:NCells
newState(iCell,1).ActiveReceptors = ...
ppiUpdater.evolveReceptors(arguments involving iCell);
end
Thanks in advance for any help!
2 comentarios
Satyajeet Sasmal
el 17 de Ag. de 2015
Hi Ondrej,
Can you post your code and all relevant data that you use, here, so that I can reproduce the error?
Also, You might be incorrectly referencing your parfor loop. You can only reference the "i-th" element (not "(i+1)-th" or "(i-1)-th" elemnt) in "i-th" iteration of the loop. Please refer to the third paragraph of the link mentioned below for possible issue resolution.
Walter Roberson
el 21 de Ag. de 2015
(i+1) and (i-1) are valid for indexing for loop variable i, but it must be consistent -- you cannot reference both (i) and (i-1) . See http://www.mathworks.com/help/distcomp/sliced-variables.html
Respuestas (1)
Edric Ellis
el 18 de Ag. de 2015
If ppiUpdater is an object instance that you're trying to call a method of, you might want to use the "functional" form of method invocation, like so:
evolveReceptors(ppiUpdater, arguments involving iCell);
This entirely equivalent to the dot-reference version, except that parfor will not interpret it as an indexing expression.
1 comentario
Ondrej
el 20 de Ag. de 2015
Categorías
Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!