次のような MATLAB クラスを作成しました。
classdef myclass
properties
x_array = [];
end
methods
function increment(obj,value)
obj.x_array = [obj.x_array ; value);
end
end
end
x_array
問題は、関数を呼び出したときにプロパティが変更されないことincrement()
です: ex:
>>s = myclass
>>increment(s,5)
>>s.x_array
ans = []
私はいくつかの調査を行い、これはMATLABがオブジェクトにLazy Copyを使用しているためであるという結論に達しました.クラスをHANDLEクラスに継承させることでこれを解決する必要がありましたが、そうではありませんでした。そして、ハンドルクラスを拡張することが解決策である場合、これは正しい方法ではありません:
classdef myclass < handle
または追加の手順はありますか?