matlab中的函数句柄
我无法理解这段代码
output=lsqnonlin(@(argn) fun(arg1,arg2,argn),X0);
我的想法是 lsqnonlin 会递归地调用 argn->fun 函数,但我不确定。 是吗?
i've a problem to understand this snippet of code
output=lsqnonlin(@(argn) fun(arg1,arg2,argn),X0);
My idea is that lsqnonlin will call the argn->fun function recursively,but i'm not sure.
is it right?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果没有函数代码,就不可能说出
lsqnonlin
会做什么。但是,您的问题中的函数调用没有本质上的递归。lsqnonlin 的第一个参数是一个函数句柄,在问题的函数调用中,您传递一个匿名函数句柄:
这是一个带有一个供函数使用的参数的函数,
argn
和两个参数(是预先设置的参数),arg1
和arg2
。lsqnonlin
使用您传递给它的函数句柄来计算特定点或点向量中的函数值。您可以在此处阅读有关匿名函数句柄的更多信息: http:// /www.mathworks.com/help/techdoc/matlab_prog/f4-70115.html#f4-70133
It is impossible to say what
lsqnonlin
will do without the functions' code. However, there is nothing inherently recursive in the function call in your question.The 1st argument to
lsqnonlin
is a function handle, and in the function call in your question, you pass an anonymous function handle:Which is a function with one argument to be used by the function,
argn
, and two parameters (are pre-set arguments),arg1
andarg2
.lsqnonlin
uses the function handle you pass it in order to calculate the function value in a specific point or vector of points.You can read more about anonymous function handle here: http://www.mathworks.com/help/techdoc/matlab_prog/f4-70115.html#f4-70133