Problem using parfor: Variable cannot be classified

2 次查看(过去 30 天)
Hi.
I'm using parfor to increase the performance in my program but I having some trouble in the following code:
function [p] = perc(img,maxr)
aux=double(img); %save image on an auxiliar matrix
r=3:2:maxr; %box sizes
p=zeros(r(1,length(r))^2,size(r,2)); %a column for each box size
parfor k=1:size(r,2)
ncaixas=(size(img,1)-r(k)+1)*(size(img,2)-r(k)+1);
lim=(r(k)/2)-0.5;
for x=lim+1:(size(img,1)-lim)
for y=lim+1:(size(img,2)-lim)
.
.
.
%ordinary instructions
.
.
.
if(condition)
ROT=ROT+1;
end
p(ROT,k)=p(ROT,k)+ROT;
end
end
p(:,k)=p(:,k)./ncaixas;
end
end
MATLAB says to me that I can't use parfor in this case due to the way the variable p is used.
Is there anything I can do to fix this?
Thank you.
BTW, I'm running R2015b

采纳的回答

Walter Roberson
Walter Roberson 2016-3-16
You cannot assign to p(ROT,k) in a loop. You should assign to a temporary vector and then afterwards assign the temporary to p(:,k)

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Parallel for-Loops (parfor) 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by