我有一个问题需要理解这段代码
output=lsqnonlin(@(argn) fun(arg1,arg2,argn),X0);
我的想法是lsqnonlin将递归调用argn-> fun函数,但我不确定。 是不是?
答案 0 :(得分:2)
如果没有函数代码,就不可能说lsqnonlin
会做什么。但是,在你的问题中函数调用中没有任何固有的递归。
lsqnonlin
的第一个参数是一个函数句柄,在你的问题的函数调用中,你传递一个匿名函数句柄:
@(argn) fun(arg1,arg2,argn)
这是一个函数,函数argn
使用一个参数,两个参数(预设参数),arg1
和arg2
。 lsqnonlin
使用您传递的函数句柄来计算特定点或点向量中的函数值。
您可以在此处详细了解匿名函数句柄:http://www.mathworks.com/help/techdoc/matlab_prog/f4-70115.html#f4-70133