主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

ローカル関数

このトピックでは,“ローカル関数”という用語とローカル関数の作成および使用方法を説明します。

MATLAB®プログラムファイルには複数の関数のコードを記述できます。関数ファイルでは、ファイル内の最初の関数はメイン関数と呼ばれます。この関数は他のファイルの関数から参照でき、コマンド ラインから呼び出すことができます。ファイル内のその他の関数はローカル関数と呼ばれ、メイン関数の後に任意の順序で配置できます。ローカル関数は、同じファイル内の他の関数からのみ参照できます。ローカル関数は、他のプログラミング言語でのサブルーチンに相当し、サブ関数と呼ばれることもあります。

R2016bでは,スクリプトファイルでもローカル関数を作成できます。ただし,これらはすべてスクリプトコードの最終行の後に配置しなければなりません。詳細については,スクリプトへの関数の追加を参照してください。

たとえば,メイン関数mystatsと2つのローカル関数mymeanおよびmymedianをもつ,mystats.mという関数ファイルを作成します。

函数[avg, med] = mystats(x) n = length(x);avg = mymean (x, n);地中海= mymedian (x, n);结束函数= mymean (v、n)% MYMEAN本地函数示例。一个= (v) / n;结束函数m = mymedian (v、n)另一个本地函数的例子。w = (v)进行排序;如果Rem (n,2) == 1 m = w(n + 1)/2);其他的M = w(n/2) + w(n/2 + 1))/2;结束结束

ローカル関数mymeanmymedianは,入力リストの平均値と中央値を計算します。メイン関数mystatsはリストnの長さを決定し,それをローカル関数に渡します。

ローカル関数はコマンドラインや他のファイルの関数から呼び出すことはできませんが,ヘルプには,関数帮助を使ってアクセスできます。ファイルとローカル関数の両方の名前を指定し,>文字で区切ります。

帮助mystats > mymean
局部函数的例子。

現在のファイルにあるローカル関数は,他のファイルの関数よりも優先されます。つまり,あるプログラムファイルの中で関数を呼び出す場合,MATLABは他のメイン関数を検索する前に,呼び出す関数がローカル関数かどうかを確認します。したがって,別のファイルでオリジナルを保持しながら,特定の関数の別のバージョンを作成できます。

ローカル関数を含めたすべての関数は,ベースワークスペースとは別の独自のワークスペースをもっています。ローカル関数は,ユーザーが引数として渡さない限り,他の関数が使用している変数にアクセスできません。逆に,“入れ子”関数(別の関数内に完全に含まれている関数)は自身を含む関数が使用している変数にアクセスできます。

参考

関連するトピック