matlab中的函数句柄

时间:2011-01-27 16:01:18

标签: function matlab handles

我有一个问题需要理解这段代码

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

您可以在此处详细了解匿名函数句柄:http://www.mathworks.com/help/techdoc/matlab_prog/f4-70115.html#f4-70133