RobCos
RobCos

Reputation: 113

Functions handles in matlab

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?

Upvotes: 0

Views: 323

Answers (1)

Itamar Katz
Itamar Katz

Reputation: 9645

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

Upvotes: 2

Related Questions