2016-12-12 8 views
0

xk '= - x_ {k-1} * x_ {k-2} -x_ {k}(ここで、k = 1,2、.. 50)によって得られた50個の関数を生成したいと思います。手作業で書かなければ「賢い」方法がありますか? = - X_ {29} * X_ {28} -x { - 私はMatlabの同じ数式から50個の関数を生成する方法はありますか?

X5 'X_ {4} * X_ {3} -x {5} .... X30 =' を生成することができる方法、例えば30} 50から1からのすべてのkについて

が、私は後に、私はこのX34(15)= ..ようにそれらを呼び出すことができ、x1が、...、X50は、このように、シンボル、変数、なりたい

助けてくれてありがとう

+0

参考:[匿名機能](https://www.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html) – excaza

+0

はい、私はこれを知っており、これは私の質問の2番目の部分の答えです。私の問題は50個の変数で50個の関数を生成する方法です。 –

+3

50個の関数を生成する必要はなく、2個の入力を持つ1個の関数を生成します。 – excaza

答えて

0

Sueverが示唆しているように、1つではなく2つの入力を取る無名関数で達成する!

xkFunc = @(x,k) - x{k} * x{k-1} - x{k} 

あなたは、入力が何であるかを述べていないが、あなたの表記から、私はxがセルであるとkは、索引付けのための整数であると仮定しています。その場合、これは機能します。 xがベクトル/行列である場合は、代わり

xkFunc = @(x,k) - x(k) * x(k-1) - x(k) 

あなたは...代わりにあなたが例えば xkFunc(x,5)を呼ぶだろう、x5x6呼び出すことができるようにしたいと述べ、その後、通常のブラケットを使用し(細胞ではありません)。

MATLABは、@の後の角括弧で囲まれた変数を、呼び出されたときに式の任意の場所に置き換えます。

関連する問題