I'm new to OOP in MATLAB, but I would like to define properties a,b,c in a class in such a way that if one of the value changes, then so do the other 2. For example, suppose that we have the relation, b = a+1, c = b+1, a = c-2. Hence, if I set the value b = 2, then c = 2+1 =3 and a = c -2 = 1.

답변 (2개)

colordepth
colordepth 2025년 3월 13일

0 개 추천

To implement interdependent properties in MATLAB where changing one updates the others, you can use property 'set' methods or property listeners. Both approaches allow you to define custom behavior when a property value changes.
  1. Property Set Methods: Define set.a, set.b, and set.c methods in your class. These methods execute whenever the corresponding property is assigned a value. Inside each setter, update the other properties based on your equations. You can refer to the documentation for more details: https://www.mathworks.com/help/matlab/matlab_oop/property-set-methods.html.
  2. Property Listeners: These are event-driven callbacks that trigger when a property value changes. You can implement a logic for the dependent property update inside this callback. For more guidance, refer to: https://www.mathworks.com/help/matlab/matlab_oop/listening-for-changes-to-property-values.html.
Walter Roberson
Walter Roberson 2025년 3월 13일

0 개 추천

You can use dependent properties, perhaps in conjunction with hidden properties.
In the example given, you could have a hidden master property, hidden_a with get.a = hidden_a, get.b = hidden_a + 1, get.c = hidden_a + 2. Then establish set.a, set.b, set.c that affect hidden_a in appropriate ways -- for example set.c would set hidden_a = VALUE - 2;

카테고리

도움말 센터File Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기

제품

릴리스

R2018a

태그

질문:

2018년 12월 27일

답변:

2025년 3월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by