xiaoOMming 发表于 2013-8-22 14:30

新人求教一个遗传算法的问题

程序如下:
%m文件
function eval=f(sol)
numv=size(sol,2);
x=sol(1:numv);
eval=-20*exp(-0.2*sqrt(sum(x.^2/numv)))-exp(sum(cos(2*pi*x))/numv)+22.71282;
%m文件
function=fitness(sol,options)
numv=size(sol,2)-1;
x=sol(1:numv);
eval=f(x);
eval=-eval;
%主程序
clc,clear
bounds=ones(2,1)*[-5 5];
initPop=initializega(10,bounds,'fitness');
=ga(bounds,'fitness',[],initPop,,'maxGenTerm',1000,'normGeomSelect',,['simpleXover'],,'binaryMutation',);
然后是出现的问题:Index exceeds matrix dimensions.

Error in b2f (line 34)
  a=bval((cs(i)+1):cs(i+1));


Error in ga (line 194)
      bPop(bFoundIn,:)=


Error in Untitled4 (line 4)
=ga(bounds,'fitness',[],initPop,,'maxGenTerm',1000,'normGeomSelect',,['arithXover'],,'nonUnifMutation',);
是我的工具箱有问题还是程序有问题,不懂求教大神


xiaoOMming 发表于 2013-8-22 17:56

自己顶一下

magic2728 发表于 2013-8-22 19:37

你的矩阵维数不互相匹配,仔细检查下每个矩阵之间的计算是否符合维度要求。

xiaoOMming 发表于 2013-8-22 19:51

magic2728 发表于 2013-8-22 19:37 static/image/common/back.gif
你的矩阵维数不互相匹配,仔细检查下每个矩阵之间的计算是否符合维度要求。

是知道是这个问题,但是不知道怎么改,是这个程序要改,还是工具箱里的程序要改?

magic2728 发表于 2013-8-22 22:39

你去看一个个变量的维数,自然就会了。

xiaoOMming 发表于 2013-8-23 00:02

magic2728 发表于 2013-8-22 22:39 static/image/common/back.gif
你去看一个个变量的维数,自然就会了。

找不到问题出在哪里。。
能否请你帮忙运行一下,提示一下错误,拜托:)

madio 发表于 2013-8-23 03:52

initializega这个函数是安装了什么工具箱?我这里没有

xiaoOMming 发表于 2013-8-23 10:27

madio 发表于 2013-8-23 03:52 static/image/common/back.gif
initializega这个函数是安装了什么工具箱?我这里没有

就是这个
页: [1]
查看完整版本: 新人求教一个遗传算法的问题