Set object property in object method

2 visualizzazioni (ultimi 30 giorni)
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.
  1 Commento
per isakson
per isakson il 8 Dic 2011
This would have worked for a handle class, i.e. myClass < handle

Accedi per commentare.

Risposta accettata

Niklas Nylén
Niklas Nylén il 7 Dic 2011
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;

Più risposte (0)

Categorie

Scopri di più su Propagation and Channel Models in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by