Programming with MATLAB | ![]() ![]() |
資産subsasgnメソッド
subsasgn
メソッドは、subsref
メソッドと同じ代入となります。このバージョンを使って、1から始まる数値インデックスと構造体フィールド名を使ったインデックスを使ってあるオブジェクトに含まれるデータを変更することができます。外側のswitch
ステートメントは、インデックスが、数値、または、フィールド名のどちらかを使ったものであるかを判断するものです。内側のswitch
ステートメントは、インデックスを適切な値に射影します。
MATLABは、代入ステートメント(たとえば、A(i) =
val
, A{i} = val
, またはA.fieldname = val
)を実行する場合、subsasgn
を呼びます。
function a = subsasgn(a,index,val) % SUBSASGN 資産オブジェクト用のインデックスの代入を定義 switch index.type case '()' switch index.subs{:} case 1 a.descriptor = val; case 2 a.date = val; case 3 a.current_value = val; otherwise error('Index out of range') end case '.' switch index.subs case 'descriptor' a.descriptor = val; case 'date' a.date = val; case 'current_value' a.current_value = val; otherwise error('Invalid field name') end end
subsasgn
メソッドは、二つの手法を使って資産オブジェクトデータ構造体に値を代入することができます。たとえば、ユーザは子株式オブジェクトs
s = stock('XYZ',100,25);
をもっているとします。株式クラスメソッドの中で、つぎのステートメントのどちらかを使って、descriptor
フィールドを変更できます。
s.asset(1) = 'ABC';
s.asset.descriptor = 'ABC';
子subsasgn
メソッドが親 subsasgn
メソッドを呼び込む方法の例題は、"株式subsasgnメソッド"を参照してください。
![]() |
資産subsrefメソッド | 資産displayメソッド | ![]() |