Я создал класс 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()
: например:
>>s = myclass
>>increment(s,5)
>>s.x_array
ans = []
Я провел некоторое исследование и пришел к выводу, что это связано с тем, что MATLAB использует отложенное копирование для объектов, поэтому мой класс наследует класс HANDLE, что должно было решить эту проблему, но это не так. Кто-нибудь знает, почему это происходит? И если расширение класса дескриптора действительно является решением, разве это не правильный способ сделать это:
classdef myclass < handle
или есть какие-то дополнительные действия?