我在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
答案 0 :(得分:10)
是的,这是可能的。请注意,如果创建值对象,则该方法必须返回该对象才能更改属性(因为值对象是按值传递的)。如果创建句柄对象(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