私は、MATLAB関数を生成するために記号ツールボックスを使用しています。しかし、生成される関数への入力数は、必要なオブジェクトの数(例えば、スイッチの数)によって変化します。 2と3のために生成された関数の外観がこれを好きなスイッチ:この機能を使用してスクリプトでMatlabでさまざまなパラメータの関数を呼び出す
y = fun(a1,a2,b1,b2)
y = fun(a1,a2,a3,b1,b2,b3)
私は、これらのパラメータのベクトルを確立します。私が欲しいもの
a = [a1 a2 ...]
は直接生成された関数を呼び出すことのいずれかでありますまたはラッパー関数を作成して、スイッチの数を変更するときに呼び出しステートメントを変更する必要はありません。この問題をさらに複雑にするために、これらの変数はACADO変数です。つまり、行列演算と要素演算はできません(つまり、すべての数学演算はスカラーで行う必要があり、シンボリックツールボックスの方程式はスカラーのために書かなければなりません)。
を次のように私はそれが私を解決しないと思う「透過」パラメータの数が異なるために関数を呼び出すことができますなぜなら、それはシンボリックツールボックス(http://www.mathworks.se/help/symbolic/matlabfunction.html)によって生成されるからです。 varginを使用しようとしましたが、動作させることができません: f = @(x、y)(x + y); vargin {1} = 1; vargin {2} = 2; f(vargin) –
@angainorによって提供される回答はおそらくあなたが行くべき方法です。 –