【问题标题】:Setting an object property using a method in Matlab使用 Matlab 中的方法设置对象属性
【发布时间】:2011-07-16 06:50:24
【问题描述】:

我正在 MATLAB 中创建一个类,虽然我对对象几乎没有经验,但我几乎可以肯定我应该能够使用类方法设置类属性。这在 MATLAB 中可行吗?

classdef foo
    properties
        changeMe 
    end

    methods
        function go()
          (THIS OBJECT).changeMe = 1;
        end
    end
end

f = foo;
f.go;


t.changeMe;
ans = 1

【问题讨论】:

    标签: matlab matlab-class


    【解决方案1】:

    是的,这是可能的。请注意,如果您创建一个值对象,该方法必须返回该对象才能更改属性(因为值对象是按值传递的)。如果创建句柄对象(classdef foo<handle),则该对象通过引用传递。

    classdef foo
        properties
            changeMe = 0;
        end
    
        methods
            function self = go(self)
              self.changeMe = 1;
            end
        end
    end
    

    如上所述,在值对象上调用设置方法会返回更改后的对象。如果要更改对象,则必须将输出复制回对象。

    f = foo;
    f.changeMe
    ans =
       0
    
    f = f.go;
    
    f.changeMe
    ans =
       1
    

    【讨论】:

      猜你喜欢
      • 2015-12-08
      • 2013-06-11
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      相关资源
      最近更新 更多