MATLAB Answers


Cycle trough handles on GUI

Asked by Lorenzo
on 6 Nov 2013
Latest activity Commented on by Lorenzo
on 6 Nov 2013

Dear all, this is probably a stupid question and it was probably asked a thousand times before… Anyway… I have a GUI with a lot of tables. Every table's content is held by a handle called handle.table1, handle.table2 and so forth.

I would like to be able to change the content of the tables automatically with a for cycle.

So far I'm doing this: set(handle.table1, 'PropertyName', PropertyValue) set(handle.table3, 'PropertyName', PropertyValue) set(handle.table2, 'PropertyName', PropertyValue)

And I would like to do this:

for N=1:20

set(handle.tableN, 'PropertyName', PropertyValue)


But… how can I do it? I would like not to change the structure of the handle as that would be a messy solution since I have 4000 lines of code and would require a big rework of the whole GUI…

Thanks a lot!




No products are associated with this question.

2 Answers

Answer by Lorenzo
on 6 Nov 2013
 Accepted answer

That's great, thanks! I guess I'll ty and use eval in order to do that… That's something I've already done in the past but I wasn't sure if I could do that with handles as well…


You should not use the eval() option for what you want. Use the dynamic structure field name option.

for N=1:20
  set(handle.(sprintf('table%d',N)), 'PropertyName', PropertyValue)

Or if you are setting the same thing for all of them, no loop is needed if you use

set([handle.table1, handle.table2, handle.table3, .....], 'PropertyName', 'Value');

I'm not setting the same thing for all of them. The first option you proposed (dynamic field) seems great! I'll test that!

Thanks for your help!

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!