Ever worked with a Structure or an Object with complicated topology, including multi level nested fields? To access the relevant filed you must know the whole path. Luckily Matlab auto-completion is of a great help, but the problem still exists.
The code using this whole path may look like a sentence in literature. And what if the topology (full-path to the target field) will change? The support and debugging of such a code is a continuous nightmare. The following set of functions proposed a way out of this mess.
By using only a part of the path (possibly using only the target filed name) to your target sub-field, you can find the whole path using the function "isSubPath". It will verify whether the supplied partial path is legal, and returns the full-path. By using the full-path you can GETthe target field data, using the "getStructSubField" function with only two inputs- the structure and the full-path. In a similar manner you can SET the desired data to the target-field using the "setStructSubField" function.
Using the above sequence you will get short code, that will run, despite changes in topology (as long as the partial path is legal).
Me and my colleagues find this code very helpful. Hope you'll enjoy it as well.
Nikolay S. (2021). Set and get nested Structure/Object filed data (https://www.mathworks.com/matlabcentral/fileexchange/57957-set-and-get-nested-structure-object-filed-data), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!