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 (@) | ![]() |