0

我很难理解这段代码

output=lsqnonlin(@(argn) fun(arg1,arg2,argn),X0);

我的想法是 lsqnonlin 将递归调用 argn->fun 函数,但我不确定。这样对吗?

4

1 回答 1

2

lsqnonlin如果没有函数的代码,就不可能说会发生什么。但是,在您的问题中的函数调用中没有任何内在的递归。

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

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

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

您可以在此处阅读有关匿名函数句柄的更多信息:http: //www.mathworks.com/help/techdoc/matlab_prog/f4-70115.html#f4-70133

于 2011-01-27T16:28:32.340 回答