在询问我的previous question后,我遇到了一种情况,即我使用存储在彼此属性中的几个对象类来保持对多个字段和方法的访问。例如
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属性。 是我想要的功能。这可能吗?
答案 0 :(得分:0)
Class1{index}.Class2{index} = Class1{index}.Class2{index}.Class2Method
是解决所述需求的理想方式。它可以通过使用由句柄类填充的值类来实现。