Creating a counter loop in MatLab, GUI?
15 views (last 30 days)
Show older comments
Hello, i'm trying to create a loop counter that will add increments of 1 every time I click a pushbutton. I don't really have any code as of yet since i'm new to programming but i've figured how to detect the button being pushed, and display a number in the static text. It keeps displaying '1', how do I display 1,2,3,.....n for every push? Here is what I have so far. Thanks a bunch
a = 0;
if (handles.pushbutton5)
a = a + 1;
set(handles.text8,'string',a);
end;
3 Comments
Jan
on 29 Jan 2013
@Azzi: As Walter has explained before when I've asked the same question, the "if true, ..., end" appears, when you hit the "code" button when no text is selected.
Wouter
on 7 Nov 2013
And what if I want the option to count backwards?
I've tried creating a second pushbutton that produces:
counter = get(hObject, 'UserData') - 1;
However, no effect.
Accepted Answer
Jan
on 29 Jan 2013
I would avoid mixing the string and the numerical representation, although both are equivalent in this case. So you can add in the opening function:
set(handles.pushbutton5, 'UserData', 0);
and in the callback of this pushbutton:
function pushbutton5_Callback(hObject, EventData, handles)
counter = get(hObject, 'UserData') + 1;
set(hObject, 'UserData', counter);
set(handles.text8, 'String', sprintf('%d', counter));
4 Comments
More Answers (3)
Azzi Abdelmalek
on 25 Jan 2013
set(handles.text8,'string',num2str(a));
5 Comments
Azzi Abdelmalek
on 25 Jan 2013
In opening function initialize
Set(handles.text8,'string','0')
Amed
on 25 Jan 2013
Edited: Amed
on 25 Jan 2013
1 Comment
Azzi Abdelmalek
on 29 Jan 2013
Edited: Azzi Abdelmalek
on 29 Jan 2013
The initialization is not in the right place. You should do it in your opening function, not in your pushbutton function
See Also
Categories
Find more on Loops and Conditional Statements 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!