同じファイルの後の部分に実装されているmファイルで関数を使用することは可能ですか?Cなどの他のプログラミング言語と同様のスタイルですか?
質問する
783 次
2 に答える
14
もちろん。
このような m ファイルでは、ローカル関数はメイン関数の後に宣言されます。例えば:
function y = main_func(x)
% # This is the main function
y = helper_func1(x) .* helper_func2(x); % # Just an example
function h1 = helper_func1(x)
% # This is a helper function #1
h1 = x + 2; % # Just an example
function h2 = helper_func2(x)
% # This is a helper function #2
h2 = x * 2; % # Just an example
この例では、問題なくmain_func
呼び出すことができます。テストを実行して、自分の目で確かめてください。helper_func1
helper_func2
>> main_func(8)
ans =
160
前方宣言は必要ありません。
ところで、MATLAB に付属する多くの m-file はこの方法で実装されています。たとえば、corrcoef
. でtype corrcoef
、それを見ることができます。
注: ローカル関数の定義は、プロンプトまたはスクリプトでは許可されていないため、m ファイルで「メイン」関数を宣言する必要があります。演習として、私の例を新しい m ファイルにコピー アンド ペーストし、main_func
(最初の行のみ) の宣言を削除して、何が起こるかを確認します。
于 2012-11-11T13:11:11.620 に答える
0
静的クラスを使用して、多くの関数の実装に同じ m ファイルを使用できます。
MATLAB の 1 つの関数 = 1 つのファイルの元の理由は何だったのですか? なぜ今でもそうなっているのでしょうか?
于 2012-11-12T00:00:36.543 に答える