xiedong 发表于 2007-5-16 19:27

请问这个程序错在哪里?

matlab程序如下:

function f1=f(x)
f1=x(:,1).*x(:,1)/4+x(:,2).*x(:,2)/4;
function f2=f(x)
f2=x(:,1).*(1-x(:,2))+10;


此为前面的部分,但一运行之后,就出现了错误:

??? Input argument 'x' is undefined.
Error in ==> C:\MATLAB6p5\work\p143.m
On line 2==> f1=x(:,1).*x(:,1)/4+x(:,2).*x(:,2)/4;

请问这个错在哪里?程序是雷英杰《matlab遗传算法工具箱及应用》P143页

function函数该如何定义
要求在同一个程序里面调用

初学matlab,很多地方不明白,请大虾指教

pengweicai 发表于 2007-5-16 19:39

这个是调用的函数,只能在调用的时候使用,不能直接执行。

eight 发表于 2007-5-16 19:56

原帖由 xiedong 于 2007-5-16 19:27 发表 http://www.chinavib.com/forum/images/common/back.gif
matlab程序如下:

function f1=f(x)
f1=x(:,1).*x(:,1)/4+x(:,2).*x(:,2)/4;
function f2=f(x)
f2=x(:,1).*(1-x(:,2))+10;


此为前面的部分,但一运行之后,就出现了错误:

??? Input argument 'x ...


请参考 置顶贴:聚宝盆

lydadahappy 发表于 2008-4-14 22:12

函数要先存为.m文件吧,然后command

sigma665 发表于 2008-4-14 22:26

function f1=f(x)
f1=x(:,1).*x(:,1)/4+x(:,2).*x(:,2)/4;

function f2=f(x)
f2=x(:,1).*(1-x(:,2))+10;
先把这2个分别保存为.m文件

然后再调用它

[ 本帖最后由 eight 于 2008-4-15 09:55 编辑 ]
页: [1]
查看完整版本: 请问这个程序错在哪里?