Set object property in object method

1 次查看(过去 30 天)
I am looking for a way to set the value of a property in a class from withtin a method in that same class, but I am unable to find out how to do it. I have made a very simple example of what I want to do in the function updateObj below:
classdef myClass
properties
x
y
end
methods
function obj = myClass(xInit, yInit)
obj.x = xInit;
obj.y = yInit;
end
function updateObj(obj)
if obj.x==7
obj.y = 4;
end
end
end
end
I would like to be able to call the updateObj function using
myObj = myClass(0,0);
myObj.x = 7;
myObj.updateObj;
and then I want myObj.y to return 4, but it will return 0. I understand the reason for this, but I do not know how to change my updateObj function to get the desired result.

采纳的回答

Niklas Nylén
Niklas Nylén 2011-12-7
I found a solution to this, change the updateObj function to return obj like this
function obj = updateObj(obj)
...
end
and call it with
myObj = myObj.updateObj;

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Methods 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by