0

私のmatlab m-fileでは、いくつかのロジック(文字列連結)を使用して、次のような変数を作成しています:

c = 'CalcPrediction(1,10)'

つまり、関数といくつかのパラメーターである文字列があります。その関数呼び出しを行うにはどうすればよいですか?

run(c) を試すと、次のようになります。

>> run(c)
??? Error using ==> run at 71
CalcPrediction(1,10) not found.

注: パラメータがない場合、run(c) は正常に機能します。例 c='CalcPrediction'; 実行 (c);

4

3 に答える 3

7

探しているコマンドは、eval()代わりにrun()

于 2009-01-07T20:49:41.633 に答える
0

実際にスクリプトを見ないと一般化するのは難しいですが...

ここで、squareRoot は以下のみを含む m ファイルです。y=sqrt(x)

次に実行します:

x=[2,0];

c='squareRoot';

run(c);

与える:

y =

1.4142 0

xこの例は、宣言された変数 (この場合)を使用するようにスクリプトを定義し、スクリプトを実行する前に変数を宣言できることを示しています。

スクリプトがないと、パラメーターを使用して何をしているのかわかりません。これで質問に答えられない場合は、スクリプトを投稿してください。

于 2009-01-07T21:32:38.973 に答える
-1

str2funcを使用したい。この関数は文字列を受け取り、パラメーターで呼び出すことができる関数ハンドラーを返します。リンクされたページの例を確認してください。

fh = str2func('CalcPrediction')
fh(1, 10)
于 2009-01-07T20:47:17.067 に答える