Programming with MATLAB | ![]() ![]() |
MATLABがメソッドを読み込む優先順位の決定法
MATLABの中で、関数は、コンピュータのファイルシステムの中のディレクトリに存在しています。ディレクトリは、多くの関数(M-ファイル)を含んでいます。関数名は一つのディレクトリの中で唯一なものです(たとえば、複数のディレクトリにpie3
と呼ばれる関数を含むことができます)。コマンドライン上で関数名をタイプすると、MATLABは、すべてのディレクトリを探索し、どの関数が呼ばれるかを知ることができます。ディレクトリのこのリストは、MATLABパスと言われます。
関数の探索で、MATLABはパスの中に記述されている順にディレクトリを探索しま す。そして、指定した関数名と最初に一致した関数を呼びます。
pie3.m
というM-ファイルを記述し、MATLABが用意しているpie3.m
を含んでいるディ レクトリspecgraph
より前のディレクトリに配置したとすると、MATLABは、ユー
ザが指定した関数pie3.m
を使います(しかし、必ず最初に位置する組み込み関数、
たとえば、plot
などはこの規則が適用されません)。
オブジェクト指向プログラミングでは、同じ名前をもつ複数のメソッド(クラス
ディレクトリ内に位置するMATLAB関数)をもつことが可能で、関数に渡す変数の
クラスやタイプをベースに使用するメソッドがどれかをMATLABに設定することが
できます。たとえば、p
がポートフォリオオブジェクトの場合、つぎのステート
メント
pie3(p)
は、引数がポートフォリオオブジェクトであるので、@portfolio/pie3.m
を呼びます。
![]() |
ユーザ定義クラスの優先順位の設定 | メソッド選択手順 | ![]() |