matlab中,怎么样用function自定义函数调用另一个函数名为输入?

function [y]=bestU(x)
y=cos(5*x)-sin(3*x)+10;
end
意思就是我先这样定义一个函数,然后我定义另一个函数
function [z]=test11(funname)
像是直接通过z=bestU(1)就可以得到值了,现在我想用funname来替代bestU,以使得我可以选择更多的函数进行计算,但是试了很多方法都不行,看到网上说用eval可以,但试了半天也不行,求老师们帮忙一下!
PS:也就是说下面我们这样调用h=test(bestU)就可以得到我们想要的值了。我试了N遍,一直提醒我变量x没定义。。。。找了半天找不到错在什么地方。

第1个回答  2013-07-20
test定义两个参数,一个是函数,一个是函数的变量。
function [z]=test11(funname,x)
z=funname(x);

调用方式如下
test11(@bestU,2)本回答被提问者采纳
第2个回答  2013-07-20
调用h=test(bestU)时你并没有定义x的值。至少应该用h=test(bestU(1))吧追问

关键是test11这个函数的输入我把他定义为函数名,这个函数名funname我在调用函数时就直接输入bestU,而为什么不写成bestU(1),是因为我这里只是打比方,那个bestU函数的x值,要在我这个test11函数中才能算出来。求大神您想一想,我知道一个方法是用字符串连接eval,但是我试了很久都无果。

第3个回答  2013-07-20
建立M文件,然后在主窗口中直接调用!
第4个回答  2013-07-20
用Matlab的人,别再百度里问问题,到相关的技术论坛上去问吧
相似回答