| 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を参照してください。
| ポートフォリオコンストラクタの変更 | オブジェクトの優先順位 |