1

そして、あなたが提供できるどんな助けにも前もって感謝します...

私はMatlabを使用して一般的なケースのシナリオをプログラミングしているので、関数への入力の数は異なります。入力は、入力行列の要素数の形式を取ります。

(質問を明確にするために、以下に簡単なおもちゃの例を示します):

%# The code generates as many symbolic variables as necessary...

P1 = sym('P1')
P2 = sym('P2')
.
.
.
PN = sym('Pn')

%# I create a symbolic function of all the variables...

this  = (P1^2+P2^3+...+Pn^2)

%# I convert the symbolic function into a function...

that = matlabFunction(this)

%# Now I want to provide values for use in the calculation 
%# (I have a list of starting values for each P1...Pn)

other = that(???) --> 

%# ***Want to provide list of inputs that has as many values as the number 
%# of symbolic values I have created (which varies according to each case)****

他の質問を調べましたが、適切な検索用語を使用していない可能性があります。ハンドルを使用するときに可変数の入力を提供するエレガントな方法はありthatますか?

どうもありがとうございました。私は新人であり、感謝しています!

4

1 に答える 1

1

昇順で名前が付けられた変数を使用する代わりに、セル配列を使用します。

P = { sym('P1'), sym('P2'), ..., sym('Pn') }

次に、cell 配列のアンパッキングを使用して、cell 配列内の項目をパラメーターのリストとして渡すことができます。

that = matlabFunction(P{:})

と の違いに注意してくださいP(:)(ドキュメントP{:}を参照してください)。

于 2012-08-24T05:39:48.987 に答える