Задав мой предыдущий вопрос Я попал в ситуацию, когда я использую пару классов объектов, хранящихся в свойствах друг друга, чтобы сохранить доступ к нескольким полям и методам. Например
classdef Class1
properties
Class1Prop % A property accessible from Class1
Class2 % A cell array of class 2 objects
end
methods
% Construct the class with all of its properties
function self = Class1()
end
function Class1Method
self.Class1Prop = ...
end
end
end
Я заполняю объект Class1, который содержит массив ячеек Class2. Теперь я хотел бы, чтобы методы изменяли значения свойств внутри этого объекта. т.е.
Class1{index}.Class2{index}.Class2Method
выполнит некоторые вычисления , и теперь будет хранить это значение где-то в этом экземпляре класса.
Как указано в документации к Matlab:
"Если функция изменяет объект дескриптора, переданный в качестве входного аргумента,
модификация влияет на объект, на который ссылаются как оригинал
и скопированные ручки. "
Чтобы получить желаемую функциональность, я должен использовать классы значений (с методами, возвращающими объект класса), чтобы изменить значение, возвращаемое вызовом метода. Возвращаемое значение также может быть присвоено:
Class1{index}.Class2{index} = Class1{index}.Class2{index}.Class2Method
Однако в идеале
Class1{index}.Class2{index}.Class2Method
обновит свойства Class2. И , что - это функциональность, которую я хочу. Это возможно?