MATLAB Function Reference    
function

ファンクション M-ファイル

詳細

既存の関数を使って、新たな関数を追加することができます。新たな関数を構成する既存のコマンドおよび関数は、M-ファイルと呼ばれるテキストファイルの中に書き込みます。

M-ファイルは、スクリプトファンクションがあります。スクリプトは、一連のMATLABステートメントを含んだ簡単なファイルです。ファンクションは、ローカル変数を使用し、入力引数を受け入れます。

M-ファイル名は、アルファベット文字ではじまり、ファイル拡張子.m をもちます。スクリプトまたはファンクションを使用するために、拡張子を除いたM-ファイル名からMATLAB は検索を行います。

ファンクションM-ファイルの最初の行は、シンタックスの定義を含みます。M-ファイルの最初の行で定義される関数名は、拡張子を除いたファイル名と同名にしてください。たとえば、stat.m という名前のディスク上のファイル

により、ベクトルの平均と標準偏差を計算するstat という新たな関数が定義されます。関数本体内の変数はすべてローカル変数です。

同じファイル内の他の関数に対してのみ有効なサブ関数は、先行する関数やサブ関数の本体の後に、キーワードfunction を使って新たな関数を定義することで作成できます。たとえば、avgは、stat.m 内のサブ関数です。

サブ関数は、それらが定義されているファイルの外部では有効ではありません。通常、ファイルの終端に到達したときにリターンが行われます。途中で強制的にリターンするためには、returnステートメントを使ってください。

MATLABが名前によって関数を認識しないとき、ディスク上で同じ名前のフィル名を検索します。関数が見つかると、MATLABは後に続いて使用するためにメモリ内にコンパイルします。一般に、MATLABに何かの名前を入力すると、MATLABインタプリタは、つぎのような処理を行います。

  1. 変数であるかどうかをチェックします。
  2. 多重定義されていない内部関数(eig,sin) かどうかをチェックします。
  3. ローカル関数(ユーザ定義関数)かどうかをチェックします。
  4. プライベートディレクトリ内の関数であるかどうかをチェックします。
  5.     MATLABパス上のディレクトリ内で関数を検索します。順序はあまり重要ではありません。

MATLAB での実行

  1.     特定の関数に繋がりがあるかどうかをチェックします(上記2, 3, 4)
  2. 上記 5 から決定される呼び出しの優先順位を使います(デフォルトは内部 MATLAB関数です)。Constructor は何よりも最優先されます。

コマンドラインや別の M-ファイルから関数 M-ファイルをコールするとき、MATLABは関数を文法的に解釈して、メモリ内に格納します。コマンド clear を使って消去するか、MATLABを quit するまで、文法的に解釈された関数はメモリ内に残ります。コマンドpcode は、インタプリテイトされて、ディスク上に後でロードされるP-ファイルとして結果を格納します。

参考

nargin, nargout, pcode, varargin, varargout, what


 func2str function_handle (@)