Matlab Class property sharing between different classes

10 visualizaciones (últimos 30 días)
Anil Ozturk
Anil Ozturk el 20 de Nov. de 2018
Comentada: madhan ravi el 21 de Nov. de 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?

Respuesta aceptada

TADA
TADA el 20 de Nov. de 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 comentarios
Anil Ozturk
Anil Ozturk el 21 de Nov. de 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 :

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Class Introspection and Metadata en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by