Функции ручек в Matlab - PullRequest
       11

Функции ручек в Matlab

0 голосов
/ 27 января 2011

У меня проблема с пониманием этого фрагмента кода

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

Моя идея заключается в том, что lsqnonlin будет рекурсивно вызывать функцию argn-> fun, но я не уверен. это правильно?

1 Ответ

2 голосов
/ 27 января 2011

Невозможно сказать, что будет делать lsqnonlin без кода функций.Однако в вызове функции в вашем вопросе нет ничего рекурсивного.

1-й аргумент lsqnonlin является дескриптором функции, а при вызове функции в вашем вопросе вы передаете анонимный дескриптор функции:

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

Это функция с одним аргументом, который будет использоваться функцией, argn и двумя параметрами (предварительно установленными аргументами), arg1 и arg2.lsqnonlin использует дескриптор функции, который вы передаете, чтобы вычислить значение функции в конкретной точке или в векторе точек.

Подробнее о дескрипторе анонимной функции вы можете прочитать здесь: http://www.mathworks.com/help/techdoc/matlab_prog/f4-70115.html#f4-70133

...