运行提示出错Matrix dimension must agree
提示是下面这句出错
m=py/Numv;
这是怎么回事 啊 Numv应该是交叉的点数吧?不知道对不对? 原帖由 murhythm 于 2008-7-21 19:59 发表 http://www.chinavib.com/forum/images/common/back.gif
Numv应该是交叉的点数吧?不知道对不对?
交叉点的位置
[ 本帖最后由 frogfish 于 2008-9-12 09:54 编辑 ] 感谢楼主,:lol :handshake :victory: 好复杂,研究一下。
请教
运行提示出错Matrix dimension must agree提示是下面这句出错
m=py/Numv;
这是怎么回事 呢 比较复杂,有没有用工具箱编的?
算法
怎么不可以下呢? Error in ==> M05001810 at 4pop=round(rand(popsize,chromlength));
是不是MATLAB里要放个工具包 怎么会有这个提示 LZ用的是MATLAB多少的? 觉得有几处错误。
for j=1:Numv
pop1=ones(px,m);
pop2=pop(:,m*(j-1)+1:m*j); %取出相应变量对应的二进制编码段
for i=1:2:px-1
if(rand<pc)
cpoint=round(rand*(m-1)); %cpoint为交叉点
pop1(i,:)=;
pop1(i+1,:)=;
else
pop1(i,:)=pop2(i,1:m);
pop1(i+1,:)=pop2(i+1,1:m);
end
end
newpop(:,m*(j-1)+1:m*j)=pop1; %将交叉后的一个参数的编码放入新种群中
end
觉得红色字体这两处互换才对
%Name:genmain05.m
clear
clf
popsize=20; %群体大小
chromlength=10; %字符串长度(个体长度)
pc=0.6; %交叉概率
pm=0.001; %变异概率
pop=initpop(popsize,chromlength); %随机产生初始群体
for i=1:20 %20为迭代次数
=calobjvalue(pop); %计算目标函数
fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度
=selection(pop,fitvalue); %复制
=crossover(pop,pc); %交叉
=mutation(pop,pc); %变异
———这两处应该换成newpop吧? 真是高手 路过顺便学习一下谢谢楼主 收藏了,学习一下