Borrar filtros
Borrar filtros

Undefined operator '==' for input arguments of type 'cell'?

3 visualizaciones (últimos 30 días)
i got an error
Undefined operator '==' for input arguments of type 'cell'.
Error in GeneratePopulation (line 143)
pt=find(p1==1); %cycle value utk p1
what can i do to fix it?
%% parent selection
cp=0.4; % Crossover Percentage
np=2*round(cp*r/2); % Number of Offsprings (Parents)
% np=cp*r
valp=np/2;
v=valp;
n1=length(RS(:,1));
PP=RS([1:v,n1-v+1:end],3:end);
P=cell(1,np); % preallocate
for i=1:np
P{i} = PP(i,:);
end
%celldisp(P);
%vertcat(P{:}); % double array
%% CYCLE CROSSOVER
szcld = size(P,2); % p
n2=length(P(:,1));
c1=zeros(1,szcld);
c2=zeros(1,szcld);
p1= P(1:v);
p2= P(1:n2-v+1:end);
pt=find(p1==1); %cycle value utk p1
for i=1:P
while (c1(pt)==0)
c1(pt)=p1(pt);
pt=find(p1==p2(pt));
end
left=find(c1==0);
c1(left)=p2(left)
pt=find(p4==1); %cycle value utk p1
while (c2(pt)==0)
c2(pt)=p4(pt);
pt=find(p2==p1(pt));
end
left=find(c2==0);
c2(left)=p1(left);
end

Respuestas (1)

madhan ravi
madhan ravi el 7 de En. de 2019
P=vertcat(P{:}); % double array %% uncomment this line
  10 comentarios
Walter Roberson
Walter Roberson el 8 de En. de 2019
So you want to find all the linear indices in p1 at which the value is 1? Not the column number in each row?
sharifah shuthairah syed abdullah
sharifah shuthairah syed abdullah el 8 de En. de 2019
when u said it like that.. its seem that my coding is wrong.. i want to find a linear indices in p1 but i dont want all the value is equal to 1.
and i want to read PP not as matrix but as an answer .. each row is an answer / parent

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements 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