Passing value of variable instead of string
3 views (last 30 days)
Show older comments
Vincent MAILLET
on 24 Oct 2017
Commented: Vincent MAILLET
on 25 Oct 2017
Hello,
I have a GUI made with guide and I encounter a problem. A function is computing some data and then should display it on a uitable. However, I have multiple UItable (named datatable_1 to datatable_5) and when I use get and set, I have a Invalid handle object. Here is the code :
tablename = ['handles.datatable_',num2str(row)]; <-- row corresponds to the uitable I want to update
cellFN = get(tablename, 'data');
I'd like the functions get and set to understand tablename as handles.datatable_ n and not as tablename. I've been looking around the FAQs and forum but found nothing (apart from the demonic eval). If anyone as an idea that would be great.
Thank you,
Vincent
PS: already tried to use cell or structure to force the good interpretation but in vain.
3 Comments
Accepted Answer
Cam Salzberger
on 24 Oct 2017
Hello Vincent,
Stephen is correct about code design, and I would recommend making arrays of handles. Prior to "gobjects" being available, feel free to pre-allocate the array with simple doubles, or just build the array dynamically. Your graphics objects array should be sufficiently small for it to not have a huge impact on code.
If you would like a stop-gap measure that will work with your numbered variables, you can use dynamic field names for structures:
handles.(['datatable_' num2str(1)])
-Cam
More Answers (0)
See Also
Categories
Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!