Creating a counter loop in MatLab, GUI?

조회 수: 15 (최근 30일)
Amed
Amed 2013년 1월 25일
편집: Irwin2020 2018년 11월 22일
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
Jan
Jan 2013년 1월 29일
@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
Wouter 2013년 11월 7일
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.

댓글을 달려면 로그인하십시오.

채택된 답변

Jan
Jan 2013년 1월 29일
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));
If the field "text8" is missing, see FAQ: incomplete handles struct
  댓글 수: 4
Jan
Jan 2013년 1월 29일
It initialized the UserData property to 0. Otherwise the default is [].
Irwin2020
Irwin2020 2018년 11월 22일
편집: Irwin2020 2018년 11월 22일
Jan , can you please help me create a counter -loop adding strings (Hex values)?

댓글을 달려면 로그인하십시오.

추가 답변 (3개)

Azzi Abdelmalek
Azzi Abdelmalek 2013년 1월 25일
set(handles.text8,'string',num2str(a));
  댓글 수: 5
Azzi Abdelmalek
Azzi Abdelmalek 2013년 1월 25일
Look at the above code
Azzi Abdelmalek
Azzi Abdelmalek 2013년 1월 25일
In opening function initialize
Set(handles.text8,'string','0')

댓글을 달려면 로그인하십시오.


Amed
Amed 2013년 1월 25일
편집: Amed 2013년 1월 25일
Anybody else?
i initialized it as
set(handles.text8,'string','0')
a = str2double(get(handles.text8,'string'));
if (handles.pushbutton5)
a = a + 1;
set(handles.text8,'string',a);
end;
but get a constant '1' answer every click.. it will not add +1 to each click and display
  댓글 수: 1
Azzi Abdelmalek
Azzi Abdelmalek 2013년 1월 29일
편집: Azzi Abdelmalek 2013년 1월 29일
The initialization is not in the right place. You should do it in your opening function, not in your pushbutton function

댓글을 달려면 로그인하십시오.


Amed
Amed 2013년 1월 29일
Anybody else have any ideas? Still not solved
  댓글 수: 2
Jan
Jan 2013년 1월 29일
편집: Jan 2013년 1월 29일
Please post comments in the comment section and not as an answer. Thanks.
simran
simran 2013년 4월 28일
put your initial value for counter in Property Inspector's User data property but not in pushbutton callback function. This will increment counter on every click of push button.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by