前文:最終的な目的がmatlabでこれらの関数を使用することである場合(つまり、のいくつかの値についてそれらを評価することx,y,...
)、私にはもっと堅牢に見える次のアプローチを提案したいと思います。
原則として、実際には、ファイルで定義されている関数を評価するためにファイルを操作する必要はありません。funct.txt
最初の問題:ファイルの各行でインライン関数funct.txt
を定義する必要があります。
ファイルの最初の関数(つまり、最初の行)が文字列にfunct.txt
コピーされたとしましょう。str
str = '(x^2)-3y',
次のコマンドを使用して、関数を取得できますinline
。
f1 = inline(str,'x','y');
これはあなたに与えます(matlab出力)
f1 =
Inline function:
f1(x,y) = (x^2)-3y.
これで、任意の値に対して、f1
それをとして呼び出すだけで使用できます。f1(x,y)
x,y
2番目の問題:関数の定義を含むfunct.txt
文字列を取得するには、ファイルを解析する必要があります。str
それは簡単です、あなたは関数を検討したいかもしれませんfgets
。
3番目の問題:の関数はfunct.txt
2,3(またはそれ以上?)の独立変数に依存する可能性があります。私の知る限り、文字列を解析してそれを見つける簡単な方法はありません。したがって、すべての独立変数に依存するものとして各インライン関数を定義することができます。
f1 = inline('(x^2)-3y','x','y','z');
ちなみに、変数z
はアクティブな役割を果たしません。それでも、を呼び出すときに3番目のダミーパラメータを指定する必要がありますf1
。