How to get a complete list of class properties including private properties.
33 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jaeseok
am 7 Dez. 2022
Kommentiert: Rajmohan
am 28 Mai 2024
I wrote a class which have both public and private properties.
In a private mehod of the class, I need to get a complete list of porperties of the class, definitely, including all private properties.
Buit-in function 'properties' reveals only public properties.
What would be my options?
Thank you.
0 Kommentare
Akzeptierte Antwort
Steven Lord
am 7 Dez. 2022
5 Kommentare
Steven Lord
am 24 Mai 2024
Since the dynamicprops Class is also not listed as having support for code generation, I believe the complete list of properties should be known at the time the code is generated. So if worst comes to worst you could hard-code that list of properties in a method of your class.
I'm not sure what your use case is for dynamically generating the list of properties of a class implemented in MATLAB code inside a C or C++ file generated from that class. That smells kind of fishy to me.
Rajmohan
am 28 Mai 2024
You are correct, I meant metaclass is not supported for code generation.
You probably have a better programming solution compared to mine -
I am working on developing a matlab.System object. The input to this block, u, is [n,1] where it is possible to have different forms of inputs. i.e. it has to support some legacy input formats and some more recent iterations which means that n could be different and so their ordering.
My solution to generalize this was to define an input class which knows the order of inputs and assigns them to named properties - the goal being the order of the inputs is prescribed in one location only. example: obj.a = u(1); obj.b = u(2); if input if of type A. If input is of type B, then obj.a = u(17), obj.b = u(57) and so on based on the input class that was selected. This solution works great but can be a little slow as the stepImpl has a very large number of property calls. So my intention was to create a structure with the fields and values to help improve performance. Since the property list can change based on the input type, the easy way is to get the list of properties and create a structure.
Please feel free to tell me if that assumption for performance improvement is inaccurate.
I suppose a workaround would be to require that the input classes define a method to create a structure.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Graphics Object Programming finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!