| MATLAB Function Reference | ![]() |
詳細
既存の関数を使って、新たな関数を追加することができます。新たな関数を構成する既存のコマンドおよび関数は、M-ファイルと呼ばれるテキストファイルの中に書き込みます。
M-ファイルは、スクリプトとファンクションがあります。スクリプトは、一連のMATLABステートメントを含んだ簡単なファイルです。ファンクションは、ローカル変数を使用し、入力引数を受け入れます。
M-ファイル名は、アルファベット文字ではじまり、ファイル拡張子.m をもちます。スクリプトまたはファンクションを使用するために、拡張子を除いたM-ファイル名からMATLAB は検索を行います。
ファンクションM-ファイルの最初の行は、シンタックスの定義を含みます。M-ファイルの最初の行で定義される関数名は、拡張子を除いたファイル名と同名にしてください。たとえば、stat.m という名前のディスク上のファイル
function [mean,stdev] = stat(x)
n = length(x);
mean = sum(x)/n;
stdev = sqrt(sum((x-mean).^2/n));
により、ベクトルの平均と標準偏差を計算するstat という新たな関数が定義されます。関数本体内の変数はすべてローカル変数です。
同じファイル内の他の関数に対してのみ有効なサブ関数は、先行する関数やサブ関数の本体の後に、キーワードfunction を使って新たな関数を定義することで作成できます。たとえば、avgは、stat.m 内のサブ関数です。
function [mean,stdev] = stat(x) n = length(x); mean = avg(x,n); stdev = sqrt(sum((x-avg(x,n)).^2)/n); function mean = avg(x,n) mean = sum(x)/n;
サブ関数は、それらが定義されているファイルの外部では有効ではありません。通常、ファイルの終端に到達したときにリターンが行われます。途中で強制的にリターンするためには、returnステートメントを使ってください。
MATLABが名前によって関数を認識しないとき、ディスク上で同じ名前のフィル名を検索します。関数が見つかると、MATLABは後に続いて使用するためにメモリ内にコンパイルします。一般に、MATLABに何かの名前を入力すると、MATLABインタプリタは、つぎのような処理を行います。
eig,sin) かどうかをチェックします。
MATLABパス上のディレクトリ内で関数を検索します。順序はあまり重要ではありません。
特定の関数に繋がりがあるかどうかをチェックします(上記2, 3, 4)
コマンドラインや別の M-ファイルから関数 M-ファイルをコールするとき、MATLABは関数を文法的に解釈して、メモリ内に格納します。コマンド clear を使って消去するか、MATLABを quit するまで、文法的に解釈された関数はメモリ内に残ります。コマンドpcode は、インタプリテイトされて、ディスク上に後でロードされるP-ファイルとして結果を格納します。
参考
nargin, nargout, pcode, varargin, varargout, what
| func2str | function_handle (@) | ![]() |