2012-01-29 91 views
1

询问我的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的一个对象,该Class1包含Class2的单元数组。现在我想让方法更改此对象内部属性的值。即

Class1{index}.Class2{index}.Class2Method 

将执行一些计算现在有地方存储在类的该实例该值。

作为MATLAB文档中所述:

“如果函数修改作为输入参数传递的处理对象, 修改影响由两个原始 和复制句柄引用的对象。”

为了获得我想要的功能,我必须使用值类(使用返回类对象的方法),以便更改方法调用返回的值。返回可分配以及价值:

Class1{index}.Class2{index} = Class1{index}.Class2{index}.Class2Method 

然而,理想

Class1{index}.Class2{index}.Class2Method 

将更新的等级2的属性。而是我想要的功能。这可能吗?

+0

对所有的编辑感到抱歉,我认为这可能实际上是一个有用的问题;) – 2012-01-30 06:48:17

+0

** @ St-Ste-Ste-Stephen **:你好吗,你解决了你的问题吗? //(我个人认为这是一个很棒的东西,MATLAB已经发展了,所以.OOP,Yay!) – 2012-01-30 10:29:19

+1

最后一句话仍然是一个相关的问题。我还没有想出如何获得该功能。帮助仍然欢迎,谢谢! – 2012-01-30 13:35:06

回答

0
Class1{index}.Class2{index} = Class1{index}.Class2{index}.Class2Method 

是解决上述需求的理想方法。它可以通过使用由句柄类填充的值类来实现。

+0

如果有人有更丰富的答案,我会给他们支票。 – 2012-01-30 21:58:12

相关问题