Matlab Class property sharing between different classes

11 vues (au cours des 30 derniers jours)
Anil Ozturk
Anil Ozturk le 20 Nov 2018
Commenté : madhan ravi le 21 Nov 2018
Hello everyone,
I have two different class implementations:
classdef X classdef Y
properties properties
a a
b c
end end
... ...
end end
I create an object from X and an object from Y. Then, I need the memory to be shared between X.a and Y.a such that if I update X.a, I want Y.a to be updated, not the other properties (b and c) be afffected. I tried different techniques such as creating handle classes for X and Y and made an equality equation such that
X.a = Y.a ;
However, the memory addresses are not shared, only the value is copied from Y class to the X class. If I change X there is no effect on Y class.
What is the method for sharing the memory of properties between different classes?

Réponse acceptée

TADA
TADA le 20 Nov 2018
If you Trying Just copy the Property Value To Share The Value, That Can't Be Done Unless That Value Is A Third Handle Class
classdef ByRefProp < handle
properties
value;
end
end
Now you Can Set
x = X(); y = Y();
y.a = ByRefValue();
x.a = y.a;
y.a.value = 'The Quick Brown Fox Jumps Over The Lazy Dog';
disp(x.a.value);
More importantly, You Should Consider The Relationship Between X and Y.
You May Need One To Contain Or Inherit The Other.
  2 commentaires
Anil Ozturk
Anil Ozturk le 21 Nov 2018
Thank you for the quick response, it works!
But i preffered using the matlab.mixin.Copyable class mechanism for the object memory share.
I used the example given in matlab reference in :
madhan ravi
madhan ravi le 21 Nov 2018
+1

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Class Introspection and Metadata dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by