Programming with MATLAB | ![]() ![]() |
ポートフォリオsubsrefメソッド
MATLABはサブスクリプトを使ったリファレンスを見つけると、たとえば、getAccountNumber
関数の中で、つぎのようにすると、
p.name(1:3)
MATLABは、リファレンスを解釈するために、ポートフォリオsubsref
メソッドを呼びます。subsref
メソッドを定義しない場合、上のステートメントは、ポートフォリオオブジェクトに対して定義されません(ここで、p
はオブジェクトで、構造体でないことに注意してください)。
ポートフォリオsubsref
メソッドは、ポートフォリオname
フィールドにアクセスするためにgetAccountNumber
関数に対して、フィールド名と数字をインデックス
として使用することをサポートしています。
function b = subsref(p,index) % SUBSREF ポートフォリオオブジェクト用にインデックスされたフィールド名を定義 switch index(1).type case '.' switch index(1).subs case 'name' if length(index)== 1 b = p.name; else switch index(2).type case '()' b = p.name(index(2).subs{:}); end end end end
subsref
のポートフォリオ実現は、name
フィールドの特定の要素にアクセスするように設計されています。そして、
subref
の株式クラス実現のようなすべての構造体データにアクセスする一般的な方法はありません。
インデックス機能とオブジェクトに関する詳細については、subsref
を参照してください。
![]() |
ポートフォリオコンストラクタの変更 | オブジェクトの優先順位 | ![]() |