質問

matlab m-ファイルでは、次のような変数を作成するためにいくつかのロジック(文字列連結)を使用しています:

c = 'CalcPrediction(1,10)'

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

run(c)を試してみると:

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

注:パラメータがない場合、run(c)は正常に動作します。例えば。     c = 'CalcPrediction';     run(c);

役に立ちましたか?

解決

探しているコマンドは、 run()

ではなく eval()です

他のヒント

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

squareRootは、 y = sqrt(x)

のみを含むmファイルです。

次に実行:

x = [2,0];

c = 'squareRoot';

run(c);

与える:

y =

1.4142 0

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

スクリプトなしでは、パラメーターで何をしているのかわかりません。それでも問題が解決しない場合は、スクリプトを投稿してください。

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

fh = str2func('CalcPrediction')
fh(1, 10)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top