Effacer les filtres
Effacer les filtres

Problem using parfor: Variable cannot be classified

2 vues (au cours des 30 derniers jours)
Guilherme Roberto
Guilherme Roberto le 16 Mar 2016
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

Réponse acceptée

Walter Roberson
Walter Roberson le 16 Mar 2016
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)

Plus de réponses (0)

Catégories

En savoir plus sur Parallel for-Loops (parfor) dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by