スクリプトへの関数の追加
ライブ スクリプトを含む MATLAB® のスクリプトに、関数を定義するコードを含めることができます。これらの関数は "ローカル関数" と呼ばれます。ローカル関数は、スクリプト内のコードを再利用する場合に便利です。ローカル関数を追加すると、別の関数ファイルの作成や管理を回避できます。関数を試す場合にも便利で、必要に応じて簡単に追加、変更、削除できます。
ローカル関数を含むスクリプトの作成
ローカル関数を含むスクリプトまたはライブ スクリプトを作成するには、[ホーム] タブに移動して、[新規スクリプト] または [新規ライブ スクリプト] を選択します。次に、コードをファイルに追加します。各ローカル関数は、独自の関数定義ステートメントで始まり、end
キーワードで終わらなければなりません。関数の順番は任意であり、スクリプト内のいずれの場所でも定義できます。
R2024a より前: スクリプト内のローカル関数の定義は、ファイルの末尾、つまりスクリプト コードの最終行の後に記述しなければなりません。
たとえば、mystats.m
というスクリプトを作成します。
edit mystats
ファイルに、2 つのローカル関数 mymean
および mymedian
を含めます。スクリプト mystats
は、配列を宣言し、配列の長さを特定し、ローカル関数 mymean
および mymedian
を使用して配列の平均値と中央値を計算します。
x = 1:10; n = length(x); function a = mymean(v,n) % MYMEAN Local function that calculates mean of array. a = sum(v)/n; end function m = mymedian(v,n) % MYMEDIAN Local function that calculates median of array. w = sort(v); if rem(n,2) == 1 m = w((n + 1)/2); else m = (w(n/2) + w(n/2 + 1))/2; end end avg = mymean(x,n); med = mymedian(x,n);
ローカル関数を含むスクリプトの実行
ローカル関数を含むスクリプトまたはライブ スクリプトを実行するには、[エディター] タブまたは [ライブ エディター] タブの [実行] ボタンをクリックします。保存したスクリプト名をコマンド ウィンドウに入力することもできます。
スクリプトまたはライブ スクリプト内の個々のセクションを実行するには、セクション内にカーソルを置いて、 [セクションの実行] ボタンを使用します (.m
ファイルには R2017b 以降が必要)。ライブ スクリプトまたはライブ関数 (.mlx
ファイル) では、ローカル関数定義の前にあるセクションのみを実行できます。
ローカル関数および変数の制限
ローカル関数は、定義元のファイル内でのみ参照できます。他のファイル内の関数からは参照できず、コマンド ウィンドウから呼び出すことはできません。
現在のファイルにあるローカル関数は、他のファイルの関数よりも優先されます。つまり、あるスクリプト内で関数を呼び出す場合、MATLAB は他の場所で関数を検索する前に、呼び出す関数がローカル関数かどうかを確認します。これにより、別のファイルでオリジナルを保持しながら、特定の関数の別のバージョンを作成できます。
スクリプトは、ベース ワークスペース内で変数を作成し、アクセスします。ローカル関数は、その他すべての関数と同様に、ベース ワークスペースとは別の独自のワークスペースをもっています。ローカル関数は、引数として渡される場合を除いて、他の関数のワークスペース内またはベース ワークスペース内の変数にアクセスできません。
ローカル関数を含むスクリプトでは、実行可能なコードが関数の外になければなりません。
ローカル関数のヘルプへのアクセス
コマンド ラインや他のファイルの関数からローカル関数を呼び出すことはできませんが、そのヘルプには help
コマンドを使用してアクセスできます。スクリプトとローカル関数の両方の名前を >
文字で区切って指定します。
以下に例を示します。
help mystats>mymean
mymean Local function that calculates mean of array.