Matlab Class property sharing between different classes

조회 수: 10 (최근 30일)
Anil Ozturk
Anil Ozturk 2018년 11월 20일
댓글: madhan ravi 2018년 11월 21일
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?

채택된 답변

TADA
TADA 2018년 11월 20일
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
Anil Ozturk
Anil Ozturk 2018년 11월 21일
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 :

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Class Introspection and Metadata에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by