遗传算法创建三维的初始种群
a=;b=;
qS=;
for k=1 :4
for i=1 : 5
for j=1 :3
tKS(k,:,:)=rep(a(k,:)-b,);
aJS(k,:,:)=rep(a(k,:),);
if i<tKS(k,i,j)
f(k,i,j)=0;
elseif i>aJS(k,i,j)
f(k,i,j)=0;
else
f(k,i,j)=1;
end
m(k,i,j)=f(k,i,j)*qS(j);
end
end
end
这个算法在MATLAB中运行结果是正确的,但是
tG=;
Chrom=crtbp(20,9*5);
FieldD=,);rep(,);rep(,)];
t=bs2rv(Chrom,FieldD);
for k=1 : 20
for i=1 : 5
for j=1 : 9
tKS(k,:,:)=rep(t(k,:)-tG,);
tJS(k,:,:)=rep(t(k,:),);
if i<tKS(k,i,j)
f(k,i,j)=0;
elseif i>tJS(k,i,j)
f(k,i.j)=0;
else
f(k,i,j)=1;
end
end
end
end
在运行时就会出现??? Attempt to reference field of non-structure array.
其中第二个程序中t就是第一个程序中的a,只不过是用遗传算法生成的一个二维实数数组。而且在执行第二个程序for循环之前的语句是正确的,就是不知道为什么将先用遗传算法算创建初始的二维数组后,再用for循环就会出错。
在两个程序中f是个状态变量,在tKS和tJS之间取1,其他取0.
这个程序折磨了我好久,期盼高手相助啊! 请大家帮忙解决一下啊,我实在是找不出错误了 循环真多
有没有详细点的错误提示
页:
[1]