2
私はむしろ混乱しているので、これを可能な限り明確にすることを望みます。議論を促進するための簡単な例をまとめました。既存のワークスペース関数を使用したMatlab str2func
a = @(c) 1 + c;
fcn = str2func('@(x) x+a(x)');
これはfcn
が呼び出されたときに「str2funcのは」ノーワークスペース変数a
を保つんので、エラーが返されます。これはdocumentationで強調表示されています。この問題の回避策はありますか?
注:文字列へのハードコーディングa
は受け入れ可能な答えではありません。
なぜ最初に 'str2func'を使用していますか?あなたの例では必ずしも必要ではありません。 – David
@David私はそれをよく知っています。これは、問題/疑問を示す簡単な例です。私が何をしようとしているかにかかわらず、ワークスペース内の既存の変数/関数から関数を構築する方法はありますか? – ThatsRightJack
完全な問題を尋ねれば、全体的なソリューションが向上する可能性があります。あなたは 'a {1} = @(x)1 + x'' a {2} = @(x)x。^ 2'、f = @(x)x + a {i}(x ) '? – David