直接実行する1つのMatlabmファイルで複数の関数を定義する方法



How Define Multiple Functions 1 Matlab M File Run Directly



前書き

実行中のプログラムを作成すると、「このコンテキストでは関数定義は許可されていません」というエラーが発生します。それでもすべてのプログラムをmファイルに入れて結果を直接実行したい場合、プログラムにはメインプログラムとメインプログラムで使用される関数が含まれ、これらの関数の内容も同じmファイルに書き込まれます。 'function' main 'を使用する必要があります。メイン関数、つまりメインプログラムを宣言すると同時に、グローバル変数を合理的に使用し、中間パラメーター値を複数の関数に渡す必要があります。次に、例を使用して、グローバル変数を定義する方法と、複数のカスタム関数を含む実行可能プログラムを作成する方法を説明します。

解決

1.(A + B + C)/ Dを計算する機能を実現するプログラムをここに記述し、カスタム追加関数を直接参照して、合計と除算の機能を実現します。ここで、A、B、Cはグローバル変数であり、Itではありません。 Dはグローバル変数を宣言するため、関数パラメーターとして入力する必要があります。したがって、関数パラメーターとして入力する必要があります。



clc clear all global a global b global c a=1 b=2 c=3 d=10 disp(10) e=add(d) function w=add(d) global a global b global c w=(a+b+c)/d

2.グローバル変数の使用方法を確認できます。つまり、最初に宣言してから値を割り当てる必要があります。最後に、それらを関数で直接使用する場合は、関数本体で変数をグローバル定義として再度宣言する必要があります。

clc clear all % Declare global variables a, b, c global a global b global c % Variable assignment a=1 b=2 c=3 d=10 e=add(d) function w=add(d) % Functions must also declare global variables global a global b global c w=(a+b+c)/d

3.この時点でmプログラムで[実行]をクリックすると、結果インターフェイスにこのエラーが表示され、関数をこの方法で定義することは許可されていないことを確認できます。このとき、main関数を宣言することで解決できます。
画像



4.ここにメイン関数宣言の最初の文を追加すると、コンパイルボックスは関数範囲を自動的に認識し、関数を折りたたみ可能にします。以前とは異なり、メインプログラムと機能を区別することはできません。

% After declaring the function main (can be named another name), there will be no errors function main clc clear all global a global b global c a=1 b=2 c=3 d=10 disp(10) e=add(d) function w=add(d) global a global b global c w=(a+b+c)/d

5.プログラムが機能を認識した後、折りたたむことができます。プログラムのメインプログラムが長く、機能が多い場合は、プログラムを編集して折りたたむと、より簡潔に見えるようになります。
画像

6.この時点で実行した後、エラープロンプトは表示されず、計算式に従って結果を直接計算でき、結果が正しいことがわかります。このようにして、グローバル変数を定義する方法と、すべての関数を1つのファイルにまとめる方法が紹介されています。
画像



また注意してください

mファイルに複数の関数を書き込みます。各関数は関数で始まり、終わりの有無にかかわらず終了できます(この場合、別の関数が表示されるか、前の関数の終わりを示すためにファイルの終わりに到達します)。
メイン関数としての最初の関数はmファイルの外部から呼び出すことができ、他の関数はローカル関数であり、mファイル内の関数によってのみ呼び出すことができます。 main関数の名前はmにちなんで付けるのが最適です。ファイル名は同じですが、異なる場合は、呼び出すときにmファイル名(拡張子なし)を使用する必要があります。