24小时热门版块排行榜    

查看: 1450  |  回复: 5

wanldcr

木虫 (正式写手)

[求助] 大家爱帮我看看这段MATLAB程序为啥出错了

通过遗传算法计算eval = x + 10 * sin(5 * x) + 7 * cos(4 * x)的最大值,我在一个资料里面看到的,最近想学这个。我运行这段代码的时候,MATLAB提示错误Not enough input arguments.
麻烦高手帮看看~~
function [sol, eval] = fitness(sol, options)

x=sol(1);
eval = x + 10 * sin(5 * x) + 7 * cos(4 * x);

initPop = initializega(10, [0 9], 'fitness');
[x, endPop, bPop, trace] = ga([0 9],...
'fitness',[],...
initPop, [1e-6 1 1],...
'maxGenTerm', 25,...
'normGeomSelect', [0.08],...
['arithXover'], [2],...
'nonUnifMutation', [2 25 3]);
figure(1)
plot(endPop(:, 1), endPop(:, 2),'y*')
figure(2)
plot(trace(:, 1), trace(:, 2), 'r-')
xlabel('Generation');
ylabel('Fittness');
legend('解的变化','种群平均值的变化');
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

人在江湖混,遇事要镇定,让子弹再飞一会
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


感谢参与,应助指数 +1
dbb627: 金币+1, 欢迎交流 2012-07-14 18:55:21
你贴全部的报错信息
现在是说函数的输入参数不够,看不出来是哪个函数
如果是fitness,需要输入2个参数
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-07-13 21:10:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wanldcr

木虫 (正式写手)

引用回帖:
2楼: Originally posted by libralibra at 2012-07-13 21:10:56
你贴全部的报错信息
现在是说函数的输入参数不够,看不出来是哪个函数
如果是fitness,需要输入2个参数

报错信息是
Error using fitness (line 3)
Not enough input arguments.
人在江湖混,遇事要镇定,让子弹再飞一会
3楼2012-07-13 22:12:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

引用回帖:
3楼: Originally posted by wanldcr at 2012-07-13 22:12:09
报错信息是
Error using fitness (line 3)
Not enough input arguments....

第三行调用fitness的是哪条语句?
如果是'fitness',[]的话,后面那个[]必须修改为2个参数,或者去修改fitness()这个函数的定义
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2012-07-13 23:26:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wanldcr

木虫 (正式写手)

引用回帖:
4楼: Originally posted by libralibra at 2012-07-13 23:26:56
第三行调用fitness的是哪条语句?
如果是'fitness',[]的话,后面那个[]必须修改为2个参数,或者去修改fitness()这个函数的定义...

第三行语句是             x=sol(1);
不知道说输入参数不足是什么意思
人在江湖混,遇事要镇定,让子弹再飞一会
5楼2012-07-15 23:00:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★
dbb627: 金币+2, 谢谢应助! 2012-07-17 19:12:23
引用回帖:
5楼: Originally posted by wanldcr at 2012-07-15 23:00:26
第三行语句是             x=sol(1);
不知道说输入参数不足是什么意思...

function [sol, eval] = fitness(sol, options) %% 函数定义,2个输入参数

x=sol(1); % 取第一个输入参数的第一个元素,如果报错是这里,应该还有其他报错吧,表明是哪里调用了fitness这个函数,是调用的地方没有给参数导致这里出错了,因为这里是函数体定义,这句话没有错
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
6楼2012-07-16 00:50:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wanldcr 的主题更新
信息提示
请填处理意见