matlab中,怎么样用function自定义函数调用另一个函数名为输入?
function[y]=bestU(x)y=cos(5*x)-sin(3*x)+10;end意思就是我先这样定义一个函数,然后我定义另一个函数function[z]=te...
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没定义。。。。找了半天找不到错在什么地方。 展开
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没定义。。。。找了半天找不到错在什么地方。 展开
4个回答
展开全部
test定义两个参数,一个是函数,一个是函数的变量。
function [z]=test11(funname,x)
z=funname(x);
调用方式如下
test11(@bestU,2)
function [z]=test11(funname,x)
z=funname(x);
调用方式如下
test11(@bestU,2)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调用h=test(bestU)时你并没有定义x的值。至少应该用h=test(bestU(1))吧
追问
关键是test11这个函数的输入我把他定义为函数名,这个函数名funname我在调用函数时就直接输入bestU,而为什么不写成bestU(1),是因为我这里只是打比方,那个bestU函数的x值,要在我这个test11函数中才能算出来。求大神您想一想,我知道一个方法是用字符串连接eval,但是我试了很久都无果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建立M文件,然后在主窗口中直接调用!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用Matlab的人,别再百度里问问题,到相关的技术论坛上去问吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询