私はいくつかのプロパティとメソッドを持つ単純なMATLABクラスを作成しています。クラスのコンストラクタは、プロパティをデフォルト値で初期化します。クラスのメソッドは、クラスのプロパティを更新するためにクラスが構築された後に追加の入力を取得します。MATLABクラスオブジェクトが更新されない
classdef classTest
properties
p1
p2
p3
p4
end
methods
function obj = classTest()
obj.p1 = 0;
obj.p2 = 0;
obj.p3 = [];
obj.p4 = '';
end
function obj = updateSomeProperties(obj, p1)
obj.p1 = p1;
end
end
end
ただし、クラスのメソッドを呼び出すと、プロパティは更新されません。
>> b = classTest
b =
classTest with properties:
p1: 0
p2: 0
p3: []
p4: ''
>> b.updateSomeProperties(10)
ans =
classTest with properties:
p1: 10
p2: 0
p3: []
p4: ''
>> b % still used the default values.
b =
classTest with properties:
p1: 0
p2: 0
p3: []
p4: ''
私はupdateSomeProperties
は、クラスオブジェクトを更新しますが、クラスのメソッドを呼び出した後、b
が更新されない理由を知りたいと思いました。