How to get dynamic/changing text or data in MATLAB GUI in a panel window??

How can I manipulate text/numerical data from my matlab code onto my GUI in a panel box?
I want to print values from data in my script and have them on my GUI. I'm aware of static text and the edit text box, but I want the text which is displayed to come from values in my script. Example from data in my script:
Value = 50;
Then I want matlab to print Value to a panel on my GUI where a static text box says -
My number is:
Value
i.e My number is:
50

 Accepted Answer

Call set():
set(handles.staticText1, 'String', num2str(value));
You might even be able to get away with not using num2str() - I'd have to try it to see though. Obviously replace staticText1 with whatever name you gave to the "tag" property of the edit text or static text control that you want to set the value of. So bottom line, whenever you want to change or update the value of the text control, call set().
However, one watch out : If you're in an intensive loop it might not have a chance to update the GUI before it goes racing along with your loop. It might even finish your loop without ever updating the text. If that happens, put a " drawnow " command right after the "set" command.

4 Comments

Thank you Image Analyst. This is exactly what I was looking for! Much appreciated!
Thanks Image Analyst. The 'drawnow' command was exactly what I was looking for.
When you say call 'set', where exactly do you call it? I have a similar problem, where my script (lets say Part1.m) has a value that i want to send to a gui (lets say Part2.gui and Part2.fig). However, I am not able to find the set function, or most probably i am calling it at the wrong place. Thanks in advance for the help.

Sign in to comment.

More Answers (1)

A = uicontrol('Style','text','max',2, 'Units', 'norm', 'Position',[0 0 1 1]);
S = {'My value is:'};
for K = 1 : 10
S{2} = sprintf('%d', K);
set(A, 'String', S);
pause(1/2);
end

3 Comments

How can I print this on the GUI window I have already created? Do i need handles for it? I don't want a separate UI for it. I basically just want the GUI text to pull the data value calculated from my matlab script and display it in a panel window along with the other components such as figures etc in my GUI. Thanks.
Your GUI cannot pull the values calculated from your script. Your script will have to push values to the GUI.
To get text onto the GUI, you will need to use text(), which works in a graphics axis, or you will need to set() a property of a uicontrol() that you already created and put into position. Yes, you will need handles to do this. You can add a Tag property to the output component to allow you to find the component without knowing its handle ahead of time.

Sign in to comment.

Categories

Asked:

P
P
on 19 Dec 2013

Commented:

on 7 Nov 2016

Community Treasure Hunt

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

Start Hunting!