matlab中的函数句柄

发布于 2024-10-14 07:29:57 字数 150 浏览 6 评论 0原文

我无法理解这段代码

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

街道布景 2024-10-21 07:29:57

如果没有函数代码,就不可能说出 lsqnonlin 会做什么。但是,您的问题中的函数调用没有本质上的递归。

lsqnonlin 的第一个参数是一个函数句柄,在问题的函数调用中,您传递一个匿名函数句柄:

@(argn) fun(arg1,arg2,argn)

这是一个带有一个供函数使用的参数的函数,argn 和两个参数(是预先设置的参数),arg1arg2lsqnonlin 使用您传递给它的函数句柄来计算特定点或点向量中的函数值。

您可以在此处阅读有关匿名函数句柄的更多信息: 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:

@(argn) fun(arg1,arg2,argn)

Which is a function with one argument to be used by the function, argn, and two parameters (are pre-set arguments), arg1 and arg2. 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文