コード用のmatlabファイルがあります。このファイルに新しい関数を定義したいのですが、このファイルはWebotsのエージェントを制御するコードであり、コントローラーファイルは単一である必要があるため、この関数に新しいファイルを追加したくありません。ファイル。関数は、ファイル内の最初のコードまたは最後のコードを定義する必要がありますか...?
質問する
382 次
3 に答える
3
スクリプト内で関数を定義することはできませんが、関数 m ファイル内でローカル関数を定義することはできます...したがって、スクリプトが次のようになっているとします。
blah blah %// This is your main code
%// Here you want to add another function, for example:
function y = foo(x)
y = x + 2;
上記を実行しようとすると、次のエラーが発生します。
Function definitions are not permitted at the prompt or in scripts.
ただし、メイン スクリプトを関数に変更するだけで、ローカル関数を定義できるようになります。
function mainfunc %// Main function name to your choosing
blah blah %// This is your main code
function y = foo(x)
y = x + 2;
あなたのmainfunc
は引数を受け入れたり返したりしないので、通常のスクリプトのように実行できます。また、メイン関数と m ファイルは同じ名前にすることをお勧めします。
EDIT : Shai はコメントで、ここには注意点があると述べています。スクリプトはメイン ワークスペースの変数にアクセスできますが、関数には独自のスコープがあります。心に留めておきます。load
ただし、、、、およびコマンドsave
を使用してワークスペース変数を操作することはできます。evalin
assignin
于 2013-02-28T14:20:17.437 に答える
2
関数が非常に小さい場合は、無名関数として定義できます
于 2013-02-28T08:38:28.160 に答える