How to input points and numbers into GUI
古いコメントを表示
I am trying to write my first GUI, so please be patient!!! I need to know how to create a box or field or something that I can type numbers into that will then be used when the GUI runs.
回答 (3 件)
Joseph Cheng
2014 年 7 月 23 日
編集済み: Joseph Cheng
2014 年 7 月 23 日
0 投票
Check out the tutorial for GUIDE http://www.mathworks.com/discovery/matlab-gui.html There are several demos/simple templates examples that you can see what to do. for a field to type in you can use/draw an edit box using GUIDE.
Michael Haderlein
2014 年 7 月 23 日
A "please be patient" with three exclamation marks is somehow funny... You should have capitalized that sentence ;-)
One possibility is to use guide and create for instance a push button and an edit box. When you then write something like
msgbox(get(handles.edit1,'string'))
into the push button callback, you are close to what you need.
Alternatively, you can also create your GUI without guide by using uicontrol (remember to use the handles). Bit more work, but the code might be clearer, so that's my preferred way. It's up to you.
Best regards,
Michael
9 件のコメント
Kneel Armstrong
2014 年 7 月 23 日
Kneel Armstrong
2014 年 7 月 23 日
Michael Haderlein
2014 年 7 月 24 日
Ok, let me get a bit more into details. I assume you want to do it with GUIDE. Insert a push button, an edit box and axes. Right click on the push -> View Callbacks -> Callback. The editor will open (after saving the fig and the m) and you see the following lines:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
You add the following lines:
x=linspace(0,2*pi);
plot(handles.axes1,x,sin(x*str2double(get(handles.edit1,'string'))))
As long as the text in the edit is only numbers, you will see a sin curve in the axes with the frequency depending on the value of the edit.
Instead of this sin curve, you can of course do any other kind of calculation and plotting.
Hope it's clearer now.
Best regards,
Michael
PS: For some reason, you need to do a double line break to get a new line here in the forum.
Kneel Armstrong
2014 年 7 月 24 日
編集済み: Kneel Armstrong
2014 年 7 月 24 日
Kneel Armstrong
2014 年 7 月 24 日
編集済み: Kneel Armstrong
2014 年 7 月 24 日
Kneel Armstrong
2014 年 7 月 25 日
Michael Haderlein
2014 年 7 月 28 日
It doesn't matter how many inputs you have, here one example with three of them:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
x=linspace(0,2*pi);
a=str2double(get(handles.edit1,'string'));
b=str2double(get(handles.edit2,'string'));
c=str2double(get(handles.edit3,'string'));
plot(handles.axes1,x,a+b*sin(c*x))
Kneel Armstrong
2014 年 7 月 28 日
Michael Haderlein
2014 年 7 月 29 日
I can't find your attachment, but if you
1. open guide,
2. create axes, a pushbutton and three edits,
3. right-click the pushbutton to open its callback,
4. modify the callback to the code above,
5. run the code
6. write some numbers into the edit boxes
7. push the pushbutton
you will get some sin curve based on the numbers in the edit boxes. Of course, do not rename any control.
Arun Bisoyi
2014 年 7 月 23 日
編集済み: Arun Bisoyi
2014 年 7 月 23 日
Hii Kneel,
what you have to do is :-
1. First open you GUIDE, then grab two object as :- 1)Edit 2)Push button
2. Double click on the Edit, then property inspector window opens, you have to change its name "Edit " to "Hit me"
3. Just do the same with Push button .
4. after that right click on any of the object and choose M-file from the option panel.
5. in the .m file go to pushbutton_callback function.in side the function body the code as i wrote below:-
6. write the code ;-
a=get(handles.edit1,'String')
b=strcat('you have entered=',a);
msgbox(b,'Conformation','warn');
save it by some file name.
7. Then just run it by pressing f5 or fn+f5 // run icon over the upper panel
waiting for your ack..
カテゴリ
ヘルプ センター および File Exchange で Interactive Control and Callbacks についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!