我很难理解这段代码
output=lsqnonlin(@(argn) fun(arg1,arg2,argn),X0);
我的想法是 lsqnonlin 将递归调用 argn->fun 函数,但我不确定。这样对吗?
lsqnonlin
如果没有函数的代码,就不可能说会发生什么。但是,在您的问题中的函数调用中没有任何内在的递归。
第一个参数lsqnonlin
是一个函数句柄,在你的问题的函数调用中,你传递了一个匿名函数句柄:
@(argn) fun(arg1,arg2,argn)
这是一个函数,它有一个参数供函数使用argn
, 和两个参数(是预设参数),arg1
和arg2
。lsqnonlin
使用您传递的函数句柄来计算特定点或点向量中的函数值。
您可以在此处阅读有关匿名函数句柄的更多信息:http: //www.mathworks.com/help/techdoc/matlab_prog/f4-70115.html#f4-70133