Logical indexing within parfor statement

2 visualizaciones (últimos 30 días)
Javier
Javier el 1 de Ag. de 2011
Hi. I have a problem with parfor and an indexing. As you can see in my code below, I get a group of elements of a matrix using find, then I use these indexes to select the elements I need to. So it's said to me that is an error due to the way I've indexed. Any suggestion?
baseDatosFilaTemp=zeros(1,8);
tempBaseDatosIDs=zeros(cbdAcelerados,1);
tempBaseDatosIDs=baseDatos(:,columnaID);
parfor n=1:fbdAcelerados
bdAceleradosFila=zeros(1,8);
bdAceleradosFila=bdAcelerados(n,:);
indice=find(tempBaseDatosIDs==bdAceleradosFila(colAcID));
if(~isempty(indice))
if(bdAceleradosFila(colAcT)>=0)
baseDatosFilaTemp=baseDatos(indice,:);%*<-HERE TROUBLE*
baseDatosFilaTemp(columnaV)=incrVel+baseDatosFilaTemp(columnaV);
if(baseDatosFilaTemp(columnaV)>vMax)
baseDatosFilaTemp(columnaV)=vMax;
end
baseDatos(indice,:)=baseDatosFilaTemp;
end
end
end
Thanks,Javier
  3 comentarios
Javier
Javier el 1 de Ag. de 2011
The expected output is an update of baseDatos matrix elements which are in the matrix bdAcelerados too. The issue to use pafoor is the dimension of baseDatos which could be 500x8 for example.
Javier
Javier el 1 de Ag. de 2011
Sorry the example:
baseDatos=[ 10 22 1 1 1 1 1 2
20 33 1 2 4 5 7 9]
bdAcelerados =[ 2 2 2]
Then the update will be:
baseDatos=[ 10+incrVel 22 1 1 1 1 1 2
20 33 1 2 4 5 7 9]

Iniciar sesión para comentar.

Respuestas (1)

Jan
Jan el 1 de Ag. de 2011
You've stated, that there are "troubles". I guess, that this does not mean an error, but a warning of MLint?! Does it say, that you can omit the FIND? Then I suggest:
% Omit this useless line: bdAceleradosFila=zeros(1,8);
bdAceleradosFila=bdAcelerados(n,:);
indice = (tempBaseDatosIDs==bdAceleradosFila(colAcID));
if any(indice)
if bdAceleradosFila(colAcT) >= 0
baseDatosFilaTemp = baseDatos(indice,:);
...
  1 comentario
Javier
Javier el 2 de Ag. de 2011
Hi Jan, thanks for replying!
Yes I have got a warnning produced by the parfor loop, to be precise, due to the use of baseDatos. I've made the changed you have suggested to me, but despite them, I still get the warnning...
Thanks!

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by