このコードのスニペットを理解するのに問題があります
output=lsqnonlin(@(argn) fun(arg1,arg2,argn),X0);
私の考えでは、lsqnonlin は argn->fun 関数を再帰的に呼び出しますが、よくわかりません。それは正しいですか?
lsqnonlin
関数のコードなしで何ができるかを言うのは不可能です。ただし、質問の関数呼び出しには本質的に再帰的なものはありません。
の最初の引数lsqnonlin
は関数ハンドルであり、質問の関数呼び出しでは、匿名関数ハンドルを渡します。
@(argn) fun(arg1,arg2,argn)
これは、関数によって使用される 1 つの引数を持つ関数argn
、および 2 つのパラメーター (事前に設定された引数)arg1
およびarg2
です。lsqnonlin
特定のポイントまたはポイントのベクトルで関数値を計算するために、渡された関数ハンドルを使用します。
匿名関数ハンドルの詳細については、http: //www.mathworks.com/help/techdoc/matlab_prog/f4-70115.html#f4-70133を参照してください。