Logical indexing within parfor statement
1 回表示 (過去 30 日間)
古いコメントを表示
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
回答 (1 件)
Jan
2011 年 8 月 1 日
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,:);
...
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!