2017-02-01 7 views
0

シンボリック変数配列が動的に作成されている関数(jacobian()私の場合)に渡す必要があります。言い換えれば、Matlabの代わりに関数のパラメータとして配列

jacobian(handles{2}(t,y,paramlist),y) 

ここで、paramlist=[var1, var2, var3, ..., varN]は、仲裁サイズを有する。ここの変数はすべてシンボリックで、さまざまな名前を持っています。 MATLABがエラーをスローする:

関数定義のパラメータ数が分かっていれば、すべてのパラメータを別々に渡すことができます。言って、n=3

jacobian(handles{2}(t,y,paramlist(1),paramlist(2),paramlist(3)),y) 

普通のケースはどうですか?これは固定数のパラメータごとに関数呼び出しを書くプログラミングの悪いスタイルです。別の変数として扱われるように配列を渡す方法はありますか?

答えて

2

あなたは(num2cellを使用して)セル配列にparamlistを変換して、あなたがhandles{2}にインデックス付けのためにこれを使用することができますcomma separated listを作成する{:}インデックスを使用することができます。これにより、paramlistの各値が別個の下付き文字として渡されるようになります。

plistcell = num2cell(paramlist); 
jacobian(handles{2}(t, y, plistcell{:}), y) 
関連する問題