Programming with MATLAB    

MATLABがメソッドを読み込む優先順位の決定法

MATLABの中で、関数は、コンピュータのファイルシステムの中のディレクトリに存在しています。ディレクトリは、多くの関数(M-ファイル)を含んでいます。関数名は一つのディレクトリの中で唯一なものです(たとえば、複数のディレクトリにpie3と呼ばれる関数を含むことができます)。コマンドライン上で関数名をタイプすると、MATLABは、すべてのディレクトリを探索し、どの関数が呼ばれるかを知ることができます。ディレクトリのこのリストは、MATLABパスと言われます。

関数の探索で、MATLABはパスの中に記述されている順にディレクトリを探索しま す。そして、指定した関数名と最初に一致した関数を呼びます。

pie3.m というM-ファイルを記述し、MATLABが用意しているpie3.m を含んでいるディ レクトリspecgraph より前のディレクトリに配置したとすると、MATLABは、ユー ザが指定した関数pie3.m を使います(しかし、必ず最初に位置する組み込み関数、 たとえば、plotなどはこの規則が適用されません)。

オブジェクト指向プログラミングでは、同じ名前をもつ複数のメソッド(クラス ディレクトリ内に位置するMATLAB関数)をもつことが可能で、関数に渡す変数の クラスやタイプをベースに使用するメソッドがどれかをMATLABに設定することが できます。たとえば、pがポートフォリオオブジェクトの場合、つぎのステート メント

は、引数がポートフォリオオブジェクトであるので、@portfolio/pie3.mを呼びます。


  ユーザ定義クラスの優先順位の設定 メソッド選択手順