質問
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)
次に実行:
x = [2,0];
c = 'squareRoot';
run(c);
与える:
y =
1.4142 0
この例は、宣言された変数(この場合は x
)を使用するようにスクリプトを定義し、スクリプトを実行する前に変数を宣言できることを示しています。
スクリプトなしでは、パラメーターで何をしているのかわかりません。それでも問題が解決しない場合は、スクリプトを投稿してください。
str2func 。この関数は文字列を受け取り、パラメーターで呼び出すことができる関数ハンドラーを返します。リンク先ページの例をご覧ください。
fh = str2func('CalcPrediction')
fh(1, 10)
所属していません StackOverflow