laokxu 发表于 2009-10-23 19:53

Matlab自带遗传算法工具箱的一个问题

最近一直在用Matlab的遗传工具箱,今天出了个很奇怪的错误,不知道是什么原因。具体是这样的:
我写了一个适应度函数,有3个变量,在函数内分别定义为L,g,eb。在用ga调用的时候,算到某一个变量值时(几乎每次都是x=时,偶尔也有别的值),却总是出现以下错误:

??? Error using ==> makeState at 50
GA cannot continue because user supplied fitness function failed with the following error:
Undefined function or variable "g".

Error in ==> galincon at 18
state = makeState(GenomeLength,FitnessFcn,Iterate,output.problemtype,options);

Error in ==> ga at 289
       = galincon(FitnessFcn,nvars, ...

Error in ==> opt_obj3 at 53
=ga(yyyy,3,[],[],[],[],,,[],options)

说是我提供的适应度函数错误,没有变量g
但实际上,如果我单独调用此适应度函数时,没有任何问题,可以算出适应度值。这是什么原因呢?而且不管是ga调用还是我自己赋值调用时,事实上g都被赋值(去掉分号可以输出g的值,显然应该定义了呀)并参与计算了。
多谢!

ChaChing 发表于 2009-10-24 00:54

ga没用过, 门外汉!
但看LZ的说明, 建议设断点较容易检查!

yufeng 发表于 2009-10-24 07:50

肯定g的定义有问题 虽然有输出可能是你还有调用函数 这里面没有定义

ChaChing 发表于 2009-10-24 10:17

水平专业有限, 建议楼主说清楚些
给齐完整格式:出错代码和出错提示!
页: [1]
查看完整版本: Matlab自带遗传算法工具箱的一个问题