I’m new to matlab classes and have just gone through a couple tutorials and now am trying to make one. In my methods section however, I’m having trouble with what I’ve been trying to do. The object should only need a single piece of info to construct the remaining properties which I will pass as input to the constructor. I was then thinking that I should be able to call two more functions in the methods section to fill in the remaining properties… see pseudocode below…
methods
function obj=myConstructor(input)
obj.property1=input;
getProperty2(obj);
getProperty3(obj);
end
function getProperty2(obj)
obj.property2 = do something and save in property2...
end
function getProperty3(obj)
obj.property3 = do something and save in property3...
end
end
However, when I try and run this, neither property 2 or 3 are assigned… only the value that I pass to the constructor. Any help/ideas on how to accomplish the initialization would be much appreciated. Thanks.
First of all,
getmethods are usually used to retrieve (i.e. get) the value of a property of an object. Not to calculate something.Next, the MATLAB object model has two different kinds: value objects and handle objects. The distinction is important, but as you don’t mention any, I will assume you are using value objects. The behavior for handle objects is totally different.
In contrast to e.g. Java and most other languages, you need to return the changed object. So in MATLAB this would be something like:
This can be made more clean, as most likely the
calculateP?methods belong better as private static methods. This all depends on how much you want to pass to these methods.