You are on page 1of 69

MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

an Engineering and MATLAB blog

Home
Listchecker
MATLAB
Contact
About

23 Oct 2007 Quan Quach 279 comments 106,587 views

Why use a GUI in MATLAB? The main reason GUIs are used is because it makes things simple for the
end-users of the program. If GUIs were not used, people would have to work from the command line interface,
which can be extremely difficult and fustrating. Imagine if you had to input text commands to operate your web
browser (yes, your web browser is a GUI too!). It wouldn’t be very practical would it? In this tutorial, we will
create a simple GUI that will add together two numbers, displaying the answer in a designated text field.

This tutorial is written for those with little or no experience creating a MATLAB GUI (Graphical User Interface). Basic
knowledge of MATLAB is not required, but recommended. MATLAB version 2007a is used in writing this tutorial. Both
earlier versions and new versions should be compatible as well (as long as it isn’t too outdated). Lets get started!

Initializing GUIDE (GUI Creator)


Creating the Visual Aspect of the GUI: Part 1
Creating the Visual Aspect of the GUI: Part 2
Writing the Code for the GUI Callbacks
Launching the GUI
Troubleshooting and Potential Problems
Related Posts and Other Links

1. First, open up MATLAB. Go to the command window and type in guide.

1 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

2. You should see the following screen appear. Choose the first option Blank GUI (Default).

3. You should now see the following screen (or something similar depending on what version of MATLAB you are using
and what the predesignated settings are):

4. Before adding components blindly, it is good to have a rough idea about how you want the graphical part of the GUI to
look like so that it’ll be easier to lay it out. Below is a sample of what the finished GUI might look like.

2 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

1. For the adder GUI, we will need the following components

Two Edit Text components

Three Static Text component

One Pushbutton component

Add in all these components to the GUI by clicking on the icon and placing it onto the grid. At this point, your GUI
should look similar to the figure below :

2. Next, its time to edit the properties of these components. Let’s start with the static text. Double click one of the Static
Text components. You should see the following table appear. It is called the Property Inspector and allows you to
modify the properties of a component.

3 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

3. We’re interested in changing the String parameter. Go ahead and edit this text to +.

Let’s also change the font size from 8 to 20.

After modifying these properties, the component may not be fully visible on the GUI editor. This can be fixed if you
resize the component, i.e. use your mouse cursor and stretch the component to make it larger.

4. Now, do the same for the next Static Text component, but instead of changing the String parameter to +, change it to =.

5. For the third Static Text component, change the String parameter to whatever you want as the title to your GUI. I kept
it simple and named it MyAdderGUI. You can also experiment around with the different font options as well.

6. For the final Static Text component, we want to set the String Parameter to 0. In addition, we want to modify the Tag
parameter for this component. The Tag parameter is basically the variable name of this component. Let’s call it
answer_staticText. This component will be used to display our answer, as you have probably already have guessed.

4 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

7. So now, you should have something that looks like the following:

1. Next, lets modify the Edit Text components. Double click on the first Edit Text component. We want to set the String
parameter to 0 and we also want to change the Tag parameter to input1_editText, as shown below. This component
will store the first of two numbers that will be added together.

2. For the second Edit Text component, set the String parameter to 0 BUT set the Tag parameter input2_editText. This
component will store the second of two numbers that will be added together.

3. Finally, we need to modify the pushbutton component. Change the String parameter to Add! and change the Tag
parameter to add_pushbutton. Pushing this button will display the sum of the two input numbers.

5 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

4. So now, you should have something like this:

Rearrange your components accordingly. You should have something like this when you are done:

5. Now, save your GUI under any file name you please. I chose to name mine myAdder. When you save this file,
MATLAB automatically generates two files: myAdder.fig and myAdder.m. The .fig file contains the graphics of your
interface. The .m file contains all the code for the GUI.

6 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

MATLAB automatically generates an .m file to go along with the figure that you just put together. The .m file is where we
attach the appropriate code to the callback of each component. For the purposes of this tutorial, we are primarily concerned
only with the callback functions. You don’t have to worry about any of the other function types.

1. Open up the .m file that was automatically generated when you saved your GUI. In the MATLAB editor, click on the
icon, which will bring up a list of the functions within the .m file. Select input1_editText_Callback.

2. The cursor should take you to the following code block:


function input1_editText_Callback(hObject, eventdata, handles)
% hObject handle to input1_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'String') returns contents of input1_editText as text


% str2double(get(hObject,'String')) returns contents of
% input1_editText as a double

Add the following code to the bottom of that code block:


%store the contents of input1_editText as a string. if the string
%is not a number then input will be empty
input = str2num(get(hObject,'String'));

%checks to see if input is empty. if so, default input1_editText to zero


if (isempty(input))
set(hObject,'String','0')
end
guidata(hObject, handles);

This piece of code simply makes sure that the input is well defined. We don’t want the user to put in inputs that aren’t
numbers! The last line of code tells the gui to update the handles structure after the callback is complete. The handles
stores all the relevant data related to the GUI. This topic will be discussed in depth in a different tutorial. For now, you
should take it at face value that it’s a good idea to end each callback function with guidata(hObject, handles); so
that the handles are always updated after each callback. This can save you from potential headaches later on.

3. Add the same block of code to input2_editText_Callback.

4. Now we need to edit the add_pushbutton_Callback. Click on the icon and select add_pushbutton_Callback. The
following code block is what you should see in the .m file.
% --- Executes on button press in add_pushbutton.
function add_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to add_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

Here is the code that we will add to this callback:


a = get(handles.input1_editText,'String');
b = get(handles.input2_editText,'String');
% a and b are variables of Strings type, and need to be converted
% to variables of Number type before they can be added together

total = str2num(a) + str2num(b);


c = num2str(total);

7 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

% need to convert the answer back into String type to display it


set(handles.answer_staticText,'String',c);
guidata(hObject, handles);

5. Let’s discuss how the code we just added works:


a = get(handles.input1_editText,'String');
b = get(handles.input2_editText,'String');

The two lines of code above take the strings within the Edit Text components, and stores them into the variables a and
b. Since they are variables of String type, and not Number type, we cannot simply add them together. Thus, we must
convert a and b to Number type before MATLAB can add them together.

6. We can convert variables of String type to Number type using the MATLAB command str2num(String argument).
Similarly, we can do the opposite using num2str(Number argument). The following line of code is used to add the
two inputs together.
total= (str2num(a) + str2num(b));

The next line of code converts the sum variable to String type and stores it into the variable c.
c = num2str(total);

The reason we convert the final answer back into String type is because the Static Text component does not display
variables of Number type. If you did not convert it back into a String type, the GUI would run into an error when it
tries to display the answer.

7. Now we just need to send the sum of the two inputs to the answer box that we created. This is done using the following
line of code. This line of code populates the Static Text component with the variable c.
set(handles.answer_staticText,'String',c);

The last line of code updates the handles structures as was previously mentioned.
guidata(hObject, handles);

Congratulations, we’re finished coding the GUI. Don’t forget to save your m-file. It is now time to launch the GUI!

8. If you don’t want MATLAB to automatically generate all those comments for each of the callbacks, there is a way to
disable this feature. From the GUI editor, go to File, then to Preferences.

8 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

1. There are two ways to launch your GUI.

The first way is through the GUIDE editor. Simply press the icon on the GUIDE editor as shown in the figure
below:

The second method is to launch the GUI from the MATLAB command prompt. First, set the MATLAB current
directory to wherever you saved your .fig and .m file.

Next, type in the name of the GUI at the command prompt (you don’t need to type the .fig or .m extension):

9 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

2. The GUI should start running immediately:

Try to input some numbers to test out the GUI. Congratulations on creating your first GUI!

So your GUI doesn’t work and you don’t know why. Here are a couple of tips that might help you find your bug:

1. If you can’t figure out where you error is, it might be a good idea to quickly go through this tutorial again.

2. The command line can give you many hints on where exactly the problem resides. If your GUI is not working for any
reason, the error will be outputted to the command prompt. The line number of the faulty code and a short description
of the error is given. This is always a good place to start investigating.

3. Make sure all your variable names are consistent in the code. In addition, make sure your component Tags are
consistent between the .fig and the .m file. For example, if you’re trying to extract the string from the Edit Text
component, make sure that your get statement uses the right tag! More specifically, if you have the following line in
your code, make sure that you named the Edit Text component accordingly!
a = get(handles.input1_editText,'String');

4. The source code is available here, and could be useful for debugging purposes.

5. If all else fails, leave a comment here and we’ll try our best to help.

10 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

MATLAB GUI Tutorial - Slider


MATLAB GUI Tutorial - Pop-up Menu
MATLAB GUI Tutorial - Plotting Data to Axes
MATLAB GUI Tutorial - Button Types and Button Group
MATLAB GUI Tutorial - A Brief Introduction to handles
MATLAB GUI Tutorial - Sharing Data among Callbacks and Sub Functions
Video Tutorial: GUIDE Basics
More GUI Tutorial Videos From Doug Hull

This is the end of the tutorial.

279 Responses to “MATLAB GUI (Graphical User Interface) Tutorial for Beginners”

1. on 20 Nov 2007 at 10:04 am 1Mike

Thanks for the tutorial - its nice and clear

2. on 28 Nov 2007 at 11:54 am 2Fred

Extremely useful. Can you add a further tutorial on how to plot data in a set of axes in the GUI?

3. on 28 Nov 2007 at 12:36 pm 3Quan Quach

You can find the tutorial on plotting data to a set of axes here.

You can find a list of matlab tutorials here.

4. on 28 Nov 2007 at 3:04 pm 4Fred

First of all, I greatly appreciate these tutorials. I have found the Matlab documentation simply unreadable on the
subject of GUIs, and your approach with simple examples and easily modified code is perfect.

I was having some success with KeyPressFcn to make a graph with live keyboard input. Is there any way to integrate
this into a graph in a GUI? Or alternatively, have a GUI running simultaneously with a live figure responding to
KeyPressFcn?

5. on 28 Nov 2007 at 4:06 pm 5Quan Quach

Hello Fred,

I’m not sure if I’m understanding your question exactly, but I’ll try to answer it anyways.

If you look here, it’ll show you how to enter the command line mode so that you can modify any of the GUI’s
components in real time, including the axes.

But I think you may be asking something different. Are you asking if there is a way to press a particular key, say “e”,
and have it populate the axes on a GUI with a plot? I’d love to help, so if you can clarify your question, I will be in
better shape to answer!

Quan

6. on 16 Dec 2007 at 8:32 pm 6zuri

Hi!,
First of all, myAdder GUI tutorial very useful for beginner like me. but I have a question, is it possible to send let say;
sine wave plot from one GUI window to another GUI window via UDP IP connection (using same computer)?
thanks,
zuri

11 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

7. on 17 Dec 2007 at 4:25 am 7Gil

Hello Quan,

Great tutorial, loved it!

I’m having a problem similar to Fred’s here (I think). I am trying to create a GUI that displays an image, and a pointer
(little cross or whatever) to a current point (x,y). I want the cursor position to respond to key strokes (arrows), and
various shortcuts (say ‘Ctrl+F’ for toggling a filter, ‘r’ for refresh, etc.).

I know how to implement the movement of the cursor on the image, but don’t know how to trigger it with the
keystrokes.

Regards,

Gil

8. on 17 Dec 2007 at 4:33 am 8Quan Quach

Zuri:

I’m a little confused on what you’re trying to accomplish, if you can elaborate then perhaps I might have an answer.

Gil:

I emailed you some code that I developed to explain this. I will probably turn this into a tutorial in the immediate
future

9. on 18 Dec 2007 at 7:27 pm 9Diego Barragán

See also:

http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=12122&objectType=FILE

Diego

10. on 08 Jan 2008 at 11:26 am 10Vahid

Very useful. Thanks

Would you please provide the pdf file of the tutorial so it can be printed?

11. on 08 Jan 2008 at 5:43 pm 11Quan Quach

Hello Vahid,

This is something that we are currently working on and hope to have available in the near future. But for now, we
don’t have this capability.

12. on 11 Jan 2008 at 7:10 am 12Philips Wang

Simple but very useful! Thanks a lot.I am a beginner!

13. on 11 Jan 2008 at 12:43 pm 13ravi .c

hello friends
i am ravi chaudhary . i done the project in fingerprint recognition in matlab. this gui tutorial help me to creating the
framework of my project. thank u very much.
if anybody help me for creating source code for my project .please contact us in my
email (ravikumar_l7i@rediffmail.com)or (ravikumar_l7@yahoo.co.in)

14. on 19 Jan 2008 at 1:02 am 14ali

12 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

realy nice topic i wonder if u can provide more of this


thanx alot

15. on 22 Jan 2008 at 2:19 am 15mohd muzafar

thanks to teach a simple GUI but i wonderful to know how to make analysis of buried optical waveguide channel using
finite difference method using gui…

16. on 22 Jan 2008 at 10:28 pm 16Quan Quach

thanks for the feedback guys. if you click on the “matlab” tap at the top of the page, you will see a list of tutorials

or you can click here

17. on 25 Jan 2008 at 4:56 am 17Amol

Its realy amazed me with simplicity u xplained the GUI customsn…


its gr8 help 4 me…thx

18. on 29 Jan 2008 at 10:55 am 18uvise

I get an idea about gui….thanks for it…..

Can you explain how we can create a button for browsing an image for doing further process.where will be this readed
image stored.whether this image can be seened.pls give the .m codes.

pls mail to my email ID

19. on 08 Feb 2008 at 6:51 am 19Lukasz

Hello Diego Barragán


Your tutorial is really useful, but I have a one question, do you have it in English?

Thanks

Lukasz

20. on 13 Feb 2008 at 7:46 am 20Hank_Chinaski

Thanks a lot guys. This made it all much clearer than the guys from Mathworks.

21. on 17 Feb 2008 at 5:14 pm 21Dave Barr

Hi - I am very new to Matlab (7.0) and climbimg the steep learning curve. I contructed your Gui and works fine and I
think I understand the basic parts of your GUI code. I think it was nicely put together and very understandable.

Two questions though:

1) Your first added code block, ‘input = str2num(get(hObject,’String’));’ shows the variable ‘input’ and ’str2num(get’
in blue type. My editor shows these in black type ?? I have looked at the preference settings but cannot change this -
but the code works and no errors. I think your screen shot more clearly defines the variable name by its blue color -
any ideas?

2) I am quite confused on the ‘handles’ versus ‘hObject’ - Am I right in thinking ‘handles’ are for data being sent
somewhere else and ‘hObject’ for data being received? - I am still trying to understand terminology and syntax.

Anyway - tks for you time - guys like you make it easier for guys like me!

Regards

22. on 17 Feb 2008 at 5:21 pm 22Quan Quach

13 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

Hi Dave,

1) The coloring scheme is a little bit off due to the wordpress plugin that I use.

2) The handles structures contain’s all the information about all of the GUI’s objects. hObject on the other hand, is the
active object from which the callback is called.

So for example, if I pressed the “add” button, hObject in this case is the “add” button object.

Another example. When I input a number into the left edit text field, hObject is the edit text object.

There are a bunch of other tutorials that you can find on this website. I recommend taking a look at this one for a
better understanding:

http://www.blinkdagger.com/matlab/matlab-gui-tutorial-a-brief-introduction-to-handles

23. on 18 Feb 2008 at 1:32 am 23Dave Barr

Quan, thanks you so much for your quick reply. I will continue with your tutorials as you suggest.

Excellent and clear


work

Dave

24. on 25 Feb 2008 at 11:47 pm 24Hugo

Hi my friend.
Nice work , and very thank’s to you disponibility to make this tutorials.
I spend a few hours to make some things that you have here in your site, now i can found and i can see that i’m a good
way.
But i have a little thing that i want to make better, so i have a edit text box where i write the 3 digits of a IP
address(0…255), so my ideia is to make a limit os 3 chars on this edit text box.
I used the KeyPressFcn to count a number of pressed keys and compare it to 0..9 if is backspace or delete e decraise
one number of this count.
After when i will read the data of all edit boxs i compare the text of the edit box with 0…255 and if is a letter os >255
o put ‘0′.
But also with this things isn’t perfect.
I search a lot in help of matlab, and also in internet, but i can’t found any info to make something like this.
Now how i have this i’m satisfied, but if i can make better i will more happy
So if you can give me any trick or any ideia, or any link to internet i will very appreciated.
Very tahnk’s to your pacience.
String regards,
Hugo

25. on 26 Feb 2008 at 5:47 pm 25Quan Quach

Hello Hugo,

I’m not quite sure how to do this off the top of my head. I’ll have to look into it. I’ll let you know if I find anything.

Quan

26. on 27 Feb 2008 at 6:08 am 26San

hello Hugo,

I could find this link very useful. The explanation was done in a very lucid manner. Thank you!

San

14 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

27. on 28 Feb 2008 at 8:55 pm 27izzy

how we do linear regression using GUI

how to display the equation or model??

help me…

28. on 29 Feb 2008 at 10:03 pm 28meeeeebbbb

i’ve tried the tutorial step-by-step but i got error. i still got error even i’ve rewrite and corrected the code twice. then i
tried to run the source code provided at this page and when i run it, still got the same error.now i’m really confuse.
here the error i got when i run the source code download from this page.
??? uiopen(’C:\Documents and Settings\F3\My Documents\ani’s fyp\MATLAB\GUI\MATLAB_GUI_Tutorial for
beginners(blinkdagger)-troubleshooting\myAdder.m’,1)
|
Error: Unexpected MATLAB expression.

??? Attempt to reference field of non-structure array.

Error in ==> myAdder>add_pushbutton_Callback at 134


a = get(handles.input1_editText,’String’);

Error in ==> gui_mainfcn at 95


feval(varargin{:});

Error in ==> myAdder at 42


gui_mainfcn(gui_State, varargin{:});

??? Error using ==> myAdder(’add_pushbutton_Callback’,gcbo,[],guidata(gcbo))


Attempt to reference field of non-structure array.

??? Error while evaluating uicontrol Callback

??? Attempt to reference field of non-structure array.

Error in ==> myAdder>add_pushbutton_Callback at 134


a = get(handles.input1_editText,’String’);

Error in ==> gui_mainfcn at 95


feval(varargin{:});

Error in ==> myAdder at 42


gui_mainfcn(gui_State, varargin{:});

??? Error using ==> myAdder(’add_pushbutton_Callback’,gcbo,[],guidata(gcbo))


Attempt to reference field of non-structure array.

??? Error while evaluating uicontrol Callback

>>

can u explain to me

p/s:sori for my english

29. on 29 Feb 2008 at 10:09 pm 29Quan Quach

meeb

download the source files. place them into a directory.

15 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

make sure the matlab current directory is the same as above

at the command prompt,

type:
myAdder

Please give that a try

30. on 12 Mar 2008 at 7:14 am 30Pradipta

Thank you very much for the tutorial. From now on, I am ready to make GUI on matlab..

But, I would like to ask you some question.

How to make a GUI that connects to simulink (*.mdl)?


It’s like if you want to make GUI to take the data (input), and do the process in simulink.

How to do that?

Thank you very much..

Regards

31. on 14 Mar 2008 at 2:21 pm 31Quan Quach

Pradipta,

Try this tutorial:

http://www.blinkdagger.com/matlab/matlab-gui-tutorial-integrating-simulink-model-into-a-gui

32. on 20 Mar 2008 at 8:09 am 32mini

OMG thank you for this tutorial! It’s really a lifesaver!

33. on 02 Apr 2008 at 10:19 pm 33suri

good tutorial. I am trying to create a GUI which differentiates a function so input is going to be a function of time or
just a number, what will be code for converting string to function and how to use it. Pls help. The output will also be a
function or a number.

Thanks,
Regards

Suri

34. on 03 Apr 2008 at 5:59 am 34davyd

gostei do tutorial , achei simples e bem pratico.


i enjoyed the tutorial , it is easer to use .thanks

35. on 03 Apr 2008 at 10:58 pm 35innovate » Matlab GUI Tutorial - Disable Mouse Clicking

[...] with some experience creating a Matlab GUI. If you’re new to creating GUIs in Matlab, you should visit this
tutorial first. Basic knowledge of Matlab and an understanding on how data is shared among callbacks is highly [...]

36. on 04 Apr 2008 at 5:06 am 36Adam Bright

Hi,

16 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

in my code i have the following:


[time,number,pressure,raininput] = textread(’rain.txt’,'%s %d %f %f’,'delimiter’,',’,'headerlines’,4);

my question is how do i get the user to view the array time, and from that select the range they require? (preferably in
listbox- so i can use for a gui plot)

e.g they would only require the data from the 5th row til the end. ( however they shouldn’t see the row no,but only the
date)

I have’nt clue if this is even possible.

any help would be really appreciated.


{brilliant tutorials by the way - you should think about publishing a book,I’ve got 5,but yours is the easiest to
understand!}

37. on 05 Apr 2008 at 3:48 am 37sunny

I have to cerat a GUI project for finding the resistance value from color code.Therefore we have 4 panels in which we
have to insert radio buttons.one block for finding resistance value & one for closing the window.So,suggest me
programme for it along with callback functions of radio buttons.

38. on 09 Apr 2008 at 9:45 pm 38knight

its nice n comprehensive

39. on 10 Apr 2008 at 1:01 am 39ckk

nice tutorial..may i ask that is there any way that can limit the length of numbers which user can input ?

40. on 11 Apr 2008 at 1:52 am 40andy

may i know why i cant prevent user to key in other thing than number? I also cant open the source file downloaded? is
this because i using Matlab 6 rather than 7?

41. on 11 Apr 2008 at 10:52 pm 41Jim

Nice. One of the first GUI tutorials I’ve seen that wasn’t too simple, or too advanced. A large amount of MATLAB
users don’t code with GUI’s because the process was never clearly explained to them. This tutuorial is simple and
CLEAR.

42. on 12 Apr 2008 at 2:32 am 42Quan Quach

Jim,

Thanks for the positive feedback!!

Quan

43. on 17 Apr 2008 at 11:46 am 43harsha

great work sir.. now i got a hope of completing my project!!!

44. on 23 Apr 2008 at 9:45 am 44Jamal

Hi Quan,
Brilliant website, thanks very much.
If I was to create a clear pushbutton which resets the value displayed in the static text;what code would I write under
the pushbutton function?

thanks

17 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

45. on 23 Apr 2008 at 12:14 pm 45Daniel Sutoyo

Jamal:

set(handles.answer_staticText,’String’,'Insert Default Static Text Here’);

46. on 30 Apr 2008 at 11:52 am 46Peter

Does anyone know how I can make the editText so that when the user types, it automatically goes into the editText
box (i.e., the user doesn’t have to click in the box in order to type their input).

Thanks.

47. on 05 May 2008 at 2:07 am 47iran fars

thanks for your help.


i could find very good information in your site

48. on 08 May 2008 at 5:46 am 48Marcus

Hi. I’ve noticed that MATLAB truncates values when setting edit or static text boxes. Is there anyway of avoiding or
disabling this?
Thanks

49. on 11 Jun 2008 at 1:53 am 49korean

it’s nice to know about gui in MATlab;

easy & comfortable to study

thanks;)

50. on 11 Jun 2008 at 10:41 am 50Roisin

Hi,

I have what is probably a very simple question but I just can’t find the answer:

How do I save my GUI as a jpeg so that I can use it in a report? (I’m working on a mac)

Thanks
Roisin

51. on 20 Jun 2008 at 9:39 am 51eva

I have a problem to build up a simple GUI with a context graph y = a sin(x) where ‘a’ can be change by user with an
edit box …
However, there is an error when using str2num, the warning that is “Requires string or character array input”
even I copy the example in the above, the same error shown in using str2num.
Please help me to solve the problem … I am the beginner of using GUI, it suffers me a lot .

52. on 27 Jun 2008 at 5:40 am 52vinay

hi
i have following error in my gui code.please help me:

??? Reference to non-existent field

with regards
Vinay

53. on 16 Jul 2008 at 1:43 am 53Temy

18 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

Thank you so much!!! It’s very helpful ^-^

54. on 21 Jul 2008 at 2:56 pm 54Anonymous

danke meister für die hilfe


thanks man for your help

55. on 03 Aug 2008 at 10:37 am 55akbar

hi
thank u so much . it’s very useful.

56. on 04 Aug 2008 at 9:58 pm 56C Babu

Hi salute to you…No one make this much easier GUI MATLAB tutorial

57. on 06 Aug 2008 at 5:32 am 57OnOffPT

Thank you for all your tutorials.

They allow everyone to start developing GUIs very very fast while trying to understand what’s happening behind and
learn.

58. on 18 Aug 2008 at 2:34 am 58Nr

Thank you very much for this nice tutorial. I will be looking forward to see the following tutorials.

I hope other tutorials are also very easy to understand.

59. on 21 Aug 2008 at 11:08 pm 59Reju

Simple and usefull tutorial.


Thanks

60. on 25 Aug 2008 at 3:21 pm 60Ben

Hey, this may be a beginner question, but how do I call my GUI from a separate *.m file? Say I have file(a).m,
file(b).m, and file(b).fig. How do I call my file(b) GUI from file(a).m? I’ve tried a few ways, and they call the GUI
successfully, but none of the buttons or controls work. I get the following error:

??? Error while evaluating uicontrol Callback

Thanks.

61. on 25 Aug 2008 at 3:28 pm 61Quan Quach

Ben,

Make sure all the files above are located in the same directory. Give that a try!
Quan

62. on 25 Aug 2008 at 3:32 pm 62Ben

Thanks, that worked. But, now what if I want the files to be in different directories?

63. on 25 Aug 2008 at 5:37 pm 63Quan Quach

Use the addpath command in the opening function of your main gui.

The addpath command will add a path to the list of MATLAB paths and enable you to run scripts/guis from a different
path other than the current matlab directory.

19 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

Quan

64. on 26 Aug 2008 at 3:04 pm 64Ben

Thanks, that worked well!

65. on 03 Sep 2008 at 8:42 am 65yaaseen

Hi

love the tutorials. they’re great. i was wondering if you could help me. i want to read in an input from a mirochip using
a serial cable (DB9) and display that on the screen. Believe it or not, I have no idea how to read in the input, nor how
to set up the cable. but what i am most concerned with is how do I use a GUI to display an external input on the
screen????

66. on 04 Sep 2008 at 3:50 pm 66Qing

This is the best tour for GUI I have ever seen. Thanks a lot!

67. on 13 Sep 2008 at 8:29 am 67louis

please help me in my project it is a dtmf door lock system, you must first create a password and then you must login in
the keypad created using dtmf and enter your password correctly
please help me i need to pass this on or before tuesday please guys to those who are gifted with matlab skills…. thanks
please email me at lnvp_17@yahoo.com if youll help il refer you to my school mates Godbless

68. on 13 Sep 2008 at 11:40 am 68Suraj

Hi ,

This tutorial is of great help for me , i did create my own GUI with 2 push buttons and two text fields which take input
for my second program

I cannot figure outut

a)I want to run my 2nd matlab program with the input given in the text fields on mouse click on the push button
created.

Thanks in advance.

The code for my GUI is

function varargout = samplegui1(varargin)


% SAMPLEGUI1 M-file for samplegui1.fig
% SAMPLEGUI1, by itself, creates a new SAMPLEGUI1 or raises the existing
% singleton*.
%
% H = SAMPLEGUI1 returns the handle to a new SAMPLEGUI1 or the handle to
% the existing singleton*.
%
% SAMPLEGUI1('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in SAMPLEGUI1.M with the given input arguments.
%
% SAMPLEGUI1('Property','Value',...) creates a new SAMPLEGUI1 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before samplegui1_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to samplegui1_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help samplegui1

20 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

% Last Modified by GUIDE v2.5 12-Sep-2008 20:08:16

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @samplegui1_OpeningFcn, ...
'gui_OutputFcn', @samplegui1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before samplegui1 is made visible.


function samplegui1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to samplegui1 (see VARARGIN)

% Choose default command line output for samplegui1


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes samplegui1 wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = samplegui1_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

function edit1_Callback(hObject, eventdata, handles)


% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text


% str2double(get(hObject,'String')) returns contents of edit1 as a double

% --- Executes during object creation, after setting all properties.


function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor
set(hObject,'BackgroundColor','white');
end

21 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

function edit2_Callback(hObject, eventdata, handles)


% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit2 as text


% str2double(get(hObject,'String')) returns contents of edit2 as a double

% --- Executes during object creation, after setting all properties.


function edit2_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor
set(hObject,'BackgroundColor','white');
end

% --- 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)

% --- Executes on button press in pushbutton2.


function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% --------------------------------------------------------------------
function Untitled_1_Callback(hObject, eventdata, handles)
% hObject handle to Untitled_1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% --- Executes during object creation, after setting all properties.


function figure1_CreateFcn(hObject, eventdata, handles)
% hObject handle to figure1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

69. on 24 Sep 2008 at 9:37 pm 69MAksat

It awful

70. on 13 Oct 2008 at 9:52 pm 70Felipe (Brazil)

Thanks for the tutorial!


It was very useful and works perfectly!

71. on 18 Oct 2008 at 2:27 pm 71Roy

This is indeed the best tutorial among all that I have found on the web so far. Thank you!

I have a question regarding a specific feature I would like my GUI to have. I would like to have a different set of
parameters for each of the items in the listbox. For example, if item 1 is selected, one set of parameters need to be
input by the user by the GUI, but if item 2 is selected, a different set of parameters will need to be input.

How can I do this? Thanks in advance!

22 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

72. on 19 Oct 2008 at 2:26 pm 72open_devel

Thanks man. Good work!

73. on 23 Oct 2008 at 5:48 pm 73Base

thanks man…
very helpful

74. on 02 Nov 2008 at 9:33 pm 74tasya

if we created this interface, how about the callback function we should write in? for examplee, the interface as u
shown above, what should we write at the callback(of add) button? so that when we pressing add, the numbers will be
adding together and displayed the outcomes at the ’static box’ . i’m using visual v.7.2 matlab

75. on 02 Nov 2008 at 9:44 pm 75tasya

i’ve created the GUI as u shown above..but how to insert the function in? so that it will give us the final results?help
mee

function varargout = untitled4(varargin)


% UNTITLED4 M-file for untitled4.fig
% UNTITLED4, by itself, creates a new UNTITLED4 or raises the existing
% singleton*.
%
% H = UNTITLED4 returns the handle to a new UNTITLED4 or the handle to
% the existing singleton*.
%
% UNTITLED4(’CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in UNTITLED4.M with the given input arguments.
%
% UNTITLED4(’Property’,'Value’,…) creates a new UNTITLED4 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before untitled4_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to untitled4_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
% instance to run (singleton)”.
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help untitled4

% Last Modified by GUIDE v2.5 03-Nov-2008 11:28:26

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct(’gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @untitled4_OpeningFcn, …
‘gui_OutputFcn’, @untitled4_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

23 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before untitled4 is made visible.


function untitled4_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to untitled4 (see VARARGIN)

% Choose default command line output for untitled4


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes untitled4 wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% — Outputs from this function are returned to the command line.


function varargout = untitled4_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

function edit1_Callback(hObject, eventdata, handles)

%what shud i write here?

% hObject handle to edit1 (see GCBO)


% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,’String’) returns contents of edit1 as text


% str2double(get(hObject,’String’)) returns contents of edit1 as a double

% — Executes during object creation, after setting all properties.


function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,'white’);
end

function edit2_Callback(hObject, eventdata, handles)


% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

24 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

% Hints: get(hObject,’String’) returns contents of edit2 as text


% str2double(get(hObject,’String’)) returns contents of edit2 as a double

% — Executes during object creation, after setting all properties.


function edit2_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,'white’);
end

% — 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)

text3=edit1+edit2; <———-is this the correct way?

%text3 is the final static box

76. on 03 Nov 2008 at 3:50 am 76tasya

i’m using the source code(which i dload from u) and try to run in matlab GUI V.7.2… but it stated error.. may i know
why?

77. on 10 Nov 2008 at 3:55 pm 77Chiaotinger

This is really nice!


I think I will put aside excel VBA and embrace MATLAB GUI now.
Thank you:)

78. on 18 Nov 2008 at 12:53 am 78sasi

hi,

First of all thanks a lot for the tuorial.Found it rele help ful.
But I get the same error despite following the same steps.
The error goes like this:

Undefined command/function ‘myadder_mainfcn’.

Error in ==> MyAdder at 42


myadder_mainfcn(myadder_State, varargin{:});

Plz help me asap.

79. on 18 Nov 2008 at 11:58 am 79oasis

hi!
thanks for the tutorial…its very useful and easy to learn (^^)v
thanks a lot to u

80. on 27 Nov 2008 at 4:51 pm 80pero

please i need to make a button called browse to load image in axis i have 2 axis one for original image and second after
applaying any filter i want to know as`uick how can ii do that

25 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

81. on 01 Dec 2008 at 6:09 am 81chetu

Your tutorial is very helpful to me.

82. on 10 Dec 2008 at 11:05 am 82jane

i would like to ask help with my program. i would like to make a GUI that will add, subtract, multiply and divide 2
numbers. display the result of each operation done. hope you can help me…
i need to have the program….. thank you.. god bless

83. on 10 Dec 2008 at 11:14 am 83jane

i want to make a program that will add, subtract, multiply and divide. i hope you can help me.. make the code

84. on 14 Dec 2008 at 5:09 pm 84karim

Sorry, but really i need hepl.


i am finishing my Phd and i have some Matlab program. i am not familiar with GUI but i want to do some thing good.
maybe my problem is easy for some body but really i need help.
ok i have the fowlling program (sorry the note is in frensh)

what i want is:


how to built a GUI where i can have a zone where i can specify :
tp, tu, and dir without changing every time the value in my program (like a littel software)

thank you
(this is just a part of a huge program)

% TTRS(SU)= TTRS(3=A)====>TTRS(SP1USP2)= TTRS(KUJ)


clear all
close all

tp20=0.015;
tu20=0.015
b=40;
a=20;

%%%%%%%%%Surface de posage secondaire%%%%%%%%%

alpha20p1 =tp20/a %alpha20p1= alpha de la phase 20 du posage primaire


beta20p1 = tp20/b
gamma20p1 = 0
u20p1 = 0
v20p1 = 0
w20p1 = tp20/2

%%%%%%%%%Surface de posage secondaire%%%%%%%%%

alpha20p2 = 0 % alpha20p2 = alpha de la phase 20 du posage secondaire


beta20p2 = tp20/a
gamma20p2 = tp20/a
u20p2 = tp20/2
v20p2 = 0
w20p2 = 0

%%%%%%%%%Surface usinée%%%%%%%%%%%%%%%%%%%%%%%
alpha20u2 = 0 % alpha20u2 = alpha de la phase 20 de la surface usinée
beta20u2max = tu20/a
gamma20u2max = tu20/a
u20u2max = tu20/2

26 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

v20u2 = 0
w20u2 = 0

TTRS202=[0 -beta20u2max 0; 0 beta20u2max 0; 0 0 -gamma20u2max ; 0 0 gamma20u2max ; -u20u2max 0 0 ;


u20u2max 0 0]; %%%%%%%%%%%%POLYTOPE DE L ERREUR DE L USINAGE %

% plot3(TTRS202(:,1),TTRS202(:,2),TTRS202(:,3),’k.’);
%
% xlabel(’bettaSU20′)
% ylabel(’gammaSU20′)
% Zlabel(’uSU20′)
% title(’écart de la surface usinée de la phase20′)
%
% C5 = convhulln(TTRS202);
% hold on
% for o = 1:size(C5,1)
% p = C5(o,[1 2 3 1]);
% patch(TTRS202(p,1),TTRS202(p,2),TTRS202(p,3),rand,’FaceAlpha’,0.4,’FaceColor’,'yel’,'edgecolor’,'gre’);
% end
%
% grid on

%%%%%%%%%%%%%%%%%%%%%%%%%Calcul vectoriel%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%Surface priamire%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%

TP1 = [alpha20p1 u20p1; beta20p1 v20p1; gamma20p1 w20p1]


DP1 = [u20p1; v20p1; w20p1]
ROT1 = [alpha20p1 ; beta20p1 ; gamma20p1]

%%%%%%%%%%%%%%%%%%%Surface secondaire%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

TP2 = [alpha20p2 u20p2; beta20p2 v20p2; gamma20p2 w20p2]


DP2 = [u20p2; v20p2; w20p2]
ROT2 = [alpha20p2 ; beta20p2 ; gamma20p2]

%%%%%%%%%%%%%distance vers le centre de la surface primaire%%%%%%%%

xA = 20;
yA = 10;
zA = 0;

xB = 0;
yB = 10;
zB = 10;

AB = [xB-xA; yB-yA; zB-zA]

TP2M = cross(ROT2,AB)

%%%%%%%%%%%surface secondaire vers le centre du primaire%%%%%%%%

TP2 = [alpha20p2 u20p2+TP2M(1); beta20p2 v20p2+TP2M(1); gamma20p2 w20p2+TP2M(1)]

%%%%%%%%%%%%%%Somme des torseurs des posages%%%%%%%%%%%%

TTRSposage = TP1 + TP2

%%%%%% Dans ce programme nous allons identifier la classe d’appartenance de

27 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

%%%%%% la surface ou du TTRS mis en jeux pour une pièce cubique et dont les
%%%%%% opérations sont de simples surfaçages.
Rx =1;
Ry =1;
Rz = 1;
x = 1;
y = 1;
z = 1;

alpha=1;
beta=1;
gamma=1;
u=1;
v=1;
w=1;

dir = x ; % dir = direction, dir dans le cas d’un plan est sa normale (”case à remplire”)
% SDT = [alpha beta gamma u v w]‘;
% TTRSposage = TTRS_PL : développement de SDT_PL (PL = plan) multiplication
% par la normale de la surface tolérancée
if dir == x
alpha = TTRSposage(1,1)*0 %(TTRSposage(i,j) = TTRSposage(ligne,colonne))
beta = TTRSposage(2,1)*1
gamma = TTRSposage(3,1)*1
u = TTRSposage(1,2)*1
v = TTRSposage(2,2)*0
w = TTRSposage(3,2)*0
TTRSpolyPosage = [alpha u; beta v; gamma w]
TTRSpolyPosageMatrice =[0 -TTRSposage(2,1) 0; 0 TTRSposage(2,1) 0; 0 0 -TTRSposage(3,1) ; 0 0
TTRSposage(3,1) ; -TTRSposage(1,2) 0 0; TTRSposage(1,2) 0 0]; %%%%%%%%%%%%POLYTOPE DE L
ERREUR DU MONTAGE %
else
if dir == y
alpha = TTRSposage(1,1)*1 %(TTRSposage(i,j) = TTRSposage(ligne,colonne))
beta = TTRSposage(2,1)*0
gamma = TTRSposage(3,1)*1
u = TTRSposage(1,2)*0
v = TTRSposage(2,2)*1
w = TTRSposage(3,2)*0

TTRSpolyPosage = [alpha u; beta v; gamma w]


else
if dir == z
alpha = TTRSposage(1,1)*1 %(TTRSposage(i,j) = TTRSposage(ligne,colonne))
beta = TTRSposage(2,1)*1
gamma = TTRSposage(3,1)*0
u = TTRSposage(1,2)*0
v = TTRSposage(2,2)*0
w = TTRSposage(3,2)*1

TTRSpolyPosage = [alpha u; beta v; gamma w]

end
end
end

%%%%%%%%%%%%%%%%%%%%% Dessin du polytope direction ‘x’ %%%%%%%%%%%%%%%%%%


%%%%%%%%%%%

28 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

plot3(TTRSpolyPosageMatrice(:,1),TTRSpolyPosageMatrice(:,2),TTRSpolyPosageMatrice(:,3),’k.’);

xlabel(’betta’)
ylabel(’gamma’)
Zlabel(’u')
title(’écart du système de posage de la phase20′)

C4 = convhulln(TTRSpolyPosageMatrice);
hold on
for n = 1:size(C4,1)
m = C4(n,[1 2 3 1]);
patch(TTRSpolyPosageMatrice(m,1),TTRSpolyPosageMatrice(m,2),TTRSpolyPosageMatrice(m,3),rand,’FaceAlpha’,0.4
end

grid on
% view([90 0])

%%%%%%%%%%%%%%%%%%%%% Dessin du polytope direction ‘y’ %%%%%%%%%%%%%%%%%%


%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%Dessin du polytope direction ‘z’%%%%%%%%%%%

%%%%%%%%%%%%%%Somme de la variation de l’usiange et du posage sur la


%%%%%%%%%%%%%%surface usinée%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% figure
DD20=[];
for q=1:size(TTRS202,1);

D20 = TTRS202 +
[TTRSpolyPosageMatrice(q,:);TTRSpolyPosageMatrice(q,:);TTRSpolyPosageMatrice(q,:);TTRSpolyPosageMatrice(q,:);
DD20=[DD20;D20];

% plot3(D20(:,1),D20(:,2),D20(:,3),’g.’);
%
% xlabel(’betta20′)
% ylabel(’gamma20′)
% zlabel(’u20′)
% title(’somme des variations usinage + posage’)
%
C6 = convhulln(D20);
hold on

for k = 1:size(C6,1)
l = C6(k,[1 2 3 1]);
patch(D20(l,1),D20(l,2),D20(l,3),rand,’FaceAlpha’,0.8,’facecolor’,'red’);
end

end

grid on

85. on 16 Dec 2008 at 9:40 pm 85Len

Thank you for the wonderful tutorial. Keep up the great work (I am referring to the website and your actual work) !!!

86. on 23 Dec 2008 at 2:45 pm 86Reza

It’s Excellent!! Thank you for useful tutorial

87. on 10 Jan 2009 at 12:39 am 87Anonymous

29 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

I really liked this tutorial !! Thank you !!


I have a question, i want to display a 3D model depending on the choice of the user, using the pop-up menu in the GUI.
I am lost about how to write the code in the .m-file for this purpose.
For example, if the user selects the model ‘pyramid’ from the pop-up menu, the pyramid model will be displayed. I
don’t know how to set the handles to do all of this. Please help. Thanks

88. on 10 Jan 2009 at 12:39 am 88Melian

I really liked this tutorial !! Thank you !!


I have a question, i want to display a 3D model depending on the choice of the user, using the pop-up menu in the GUI.
I am lost about how to write the code in the .m-file for this purpose.
For example, if the user selects the model ‘pyramid’ from the pop-up menu, the pyramid model will be displayed. I
don’t know how to set the handles to do all of this. Please help. Thanks

89. on 13 Jan 2009 at 9:49 pm 89ley

hi,

i want to combine three .m files into one .m file or can you teach me how to use GUI on this..

i appreciate any kind of help. thanks

90. on 16 Jan 2009 at 4:03 am 90roslina

Instead of asking user to change some numbers in the m.file (the main program) before running the program, can we
use GUI command to change the numbers in the m.file while executing the file? (What syntax/code to be used to ask
user to input some numbers of certain parameter while running the program)

91. on 16 Jan 2009 at 12:26 pm 91Daniel Sutoyo

@ Jane: Have you try the tutorial out yourself? The requests you have seem very doable on your own after completing
the tutorial.

@ Karim: Put your giant code in the button call back, prior to the code use get( ) just as it was described in this tutorial
to get the values to be added. instead of two edit boxes, you need 3 edit boxes for your three parameters.

@ Melian: “pyramid’ from the pop-up menu, the pyramid model will be displayed. I don’t know how to set the handles
to do all of this”

I am gonna assume you just need help to display. All you have to do is in your menu callback put in
axes(’handles.name of your axes’). You can check the tag name in GUI builder and double click on the axes. Typically
it is ‘axes#’ or something of that sort. So you type in axes(handles.axes1)… this tell MATLAB to display whatever plot
function you use on that specific axis

@ Rosalina: The two values to be added in the edit boxes are user submitted. Just replace the button callback
(currently a+b) with your m.file, and you can change parameters on the fly. Use get( ) to get the values in the edit box.
And have them set to the variables in your m.file

92. on 31 Jan 2009 at 8:03 pm 92Dan

I used this tutorial to create my first GUI and it was extremely useful, thankyou.

But I have a problem.

Everything works perfectly in my GUI after I type “GUIDE” in matlab, open the file, and press the green arrow to start
it. However if i try to open the GUI directly from the .fig file, it gives me a bunch of errors when i press the ‘calculate’
button.

Is this a common problem?? Or have I done something wrong most likely?

93. on 03 Feb 2009 at 9:11 am 93izzuddin

30 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

hi,
i need your help about my final year project.i have to do learning kit for control systems.for my first task i have to
complete time response which include in the syllabus.time response contains step response and impulse response.i
don’t know what is the coding for the transfer function.reply to my email asap.please help me…

function varargout = time_response1(varargin)


% TIME_RESPONSE1 M-file for time_response1.fig
% TIME_RESPONSE1, by itself, creates a new TIME_RESPONSE1 or raises the existing
% singleton*.
%
% H = TIME_RESPONSE1 returns the handle to a new TIME_RESPONSE1 or the handle to
% the existing singleton*.
%
% TIME_RESPONSE1('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in TIME_RESPONSE1.M with the given input arguments.
%
% TIME_RESPONSE1('Property','Value',...) creates a new TIME_RESPONSE1 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before time_response1_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to time_response1_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Copyright 2002-2003 The MathWorks, Inc.

% Edit the above text to modify the response to help time_response1

% Last Modified by GUIDE v2.5 28-Jan-2009 13:56:14

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @time_response1_OpeningFcn, ...
'gui_OutputFcn', @time_response1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin &amp;&amp; ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before time_response1 is made visible.


function time_response1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to time_response1 (see VARARGIN)

% Choose default command line output for time_response1


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

initialize_gui(hObject, handles, false);

% UIWAIT makes time_response1 wait for user response (see UIRESUME)


% uiwait(handles.figure1);

31 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

% --- Outputs from this function are returned to the command line.
function varargout = time_response1_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

function a_input_Callback(hObject, eventdata, handles)


% hObject handle to a_input (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of a_input as text


% str2double(get(hObject,'String')) returns contents of a_input as a double
a_input = str2double(get(hObject, 'String'));
if isnan(a_input)
set(hObject, 'String', 0);
errordlg('Input must be a number','Error');
end

% Save the new value


handles.metricdata.a_input = a_input;
guidata(hObject,handles)

% --- Executes during object creation, after setting all properties.


function a_input_CreateFcn(hObject, eventdata, handles)
% hObject handle to a_input (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc &amp;&amp; isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor
set(hObject,'BackgroundColor','white');
end

%--------------------------------------------------------------------------
% --- Executes on button press in plot_pushbutton1.
function plot_pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to plot_pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get user input from GUI


a_input = str2double(get(handles.a_input,'String'));

%--------------------------------------------------------------------------
% --- Executes on button press in reset_pushbutton2.
function reset_pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to reset_pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

initialize_gui(gcbf, handles, true);

function initialize_gui(fig_handle, handles, isreset)


% If the metricdata field is present and the reset flag is false, it means
% we are we are just re-initializing a GUI by calling it from the cmd line
% while it is up. So, bail out as we dont want to reset the data.
if isfield(handles, 'metricdata') &amp;&amp; ~isreset
return;
end

handles.metricdata.a_input = 0;

32 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

set(handles.a_input, 'String', handles.metricdata.a_input);

% --------------------------------------------------------------------
function menu_Callback(hObject, eventdata, handles)
% hObject handle to menu (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% --------------------------------------------------------------------
function open_Callback(hObject, eventdata, handles)
% hObject handle to open (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
file = uigetfile('*.fig');
if ~isequal(file, 0)
open(file);
end

% --------------------------------------------------------------------
function print_Callback(hObject, eventdata, handles)
% hObject handle to print (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
printdlg(handles.figure1)

% --------------------------------------------------------------------
function close_Callback(hObject, eventdata, handles)
% hObject handle to close (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
selection = questdlg(['Close ' get(handles.figure1,'Name') '?'],...
['Close ' get(handles.figure1,'Name') '...'],...
'Yes','No','Yes');
if strcmp(selection,'No')
return;
end

delete(handles.figure1)

94. on 17 Feb 2009 at 1:41 pm 94Sagar

I am graduate student at University of Cincinnati.

I need to read few variables through GUI mode of MATLAB, store them and use them in other .m files which I have
already developed.
I went through your tutorials and found them very useful for GUI design purposes. I m having hard time in reading and
storing variables.

Right now structure of my GUI is:

I have 5 variables to read so i hve 5 Static text and 5 edit text buttons.
I have added 1 push button which says enter and in the callback of ENTER i have added these lines:

output.data1=get(handles.data1,’string’) .

Could you please tell if this is right? and how can I store them? because I cant see the values which MATLAB reads in
command line or so.

95. on 18 Feb 2009 at 10:53 pm 95shayam

hi sir..

thanks a lot for u r tutorial… its awesome.. only because of this i was able to complete Adding GUI to my project…
thanks….

33 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

96. on 20 Feb 2009 at 11:51 pm 96Quan Quach

Sagar,

Try this tutorial:

http://blinkdagger.com/matlab/matlab-gui-tutorial-a-brief-introduction-to-handles

If you use the keyboard/breakpoint command then you can see whats going on inside your GUI by exploring the local
workspace.

Quan

97. on 26 Feb 2009 at 5:48 am 97Sebas

Hi!

Thanks for this tutorial!


But I do have a question: can you give input to an GUI, and use this input when pressing the push button? Thank

98. on 27 Feb 2009 at 6:21 am 98Kuzya

Thanks for the tutorial ….


loved it .
may be you can post a tutorial about creating stand alone application?
most of what I found over the net isn’t so simple and hard to understand.
p.s. you also can replay to my e-mail address if it is convinient for you .
Thanks .

99. on 05 Mar 2009 at 12:35 pm 99kartik

great thread !!!!!!!!!!

Can anybody help me,how to move from one GUI to another GUI.Its like going from welcome screen gui to the
operational gui. by making use of push button.

waiting for replyy!!!!???

thank you

100. on 05 Mar 2009 at 3:59 pm 100Daniel

@ Sebas
yes you can! There are multiple ways in getting an input. Edit text box, radio button, popup menu… you name it. All
you have to put in your pushbutton callback is to use the function get() on the objects you need information from. If
you go to our MATLAB > basic GUI pages there are many examples of how this is done!

@ Kuzya
We will when we get some time!

@ kartik
In your button callback put in the following

figurefilename(handles)

handles if you want to pass data

101. on 15 Mar 2009 at 12:08 pm 101Ahmad Jamil

Thanks very much………… This tutorial helped me a lot by creating my first GUI file………………Thanks again

34 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

102. on 18 Mar 2009 at 12:19 am 102Jorge Becerra

I have this error:

>> Calc_DistanciaRadTierraVr1Test1
??? Undefined function or variable “designEval”.

Error in ==> gui_mainfcn at 97


if designEval && ishandle(fig)

Error in ==> Calc_DistanciaRadTierraVr1Test1 at 42


gui_mainfcn(gui_State, varargin{:});

My both files .fig and .m stay in the same archive, pls. help me.

103. on 19 Mar 2009 at 3:49 am 103philip

i have a problem with my gui file.it dose only run with GUIDE BUILDER. give me a solutin for this.

104. on 21 Mar 2009 at 12:58 am 104wena

hi! I am having a problem creating my project. How can i call an m-file which i have created in the editor using the gui.
for example, i have a button tagged bisection in my gui, what i want is when i press this button the m-file bisection will
execute. please help.. this is a project of mine in school.

105. on 23 Mar 2009 at 1:43 am 105Dimitrios

Good tutorial! thank you verry much!

106. on 24 Mar 2009 at 6:41 am 106moe

hi
im trying to load values from edit box to matlab workspace, i was wondering if someone could help me with that.
thanks in advance.

107. on 24 Mar 2009 at 1:53 pm 107hazeem

thaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanks

108. on 28 Mar 2009 at 7:42 pm 108naxus

hi, what should i do if i want to input 2 texts, lets say a and b, and then process them in a separate m-file, lets say
process.m, and then display the result, lets say c, at the GUI?

109. on 29 Mar 2009 at 6:30 pm 109David

Thanks for being so selfless and posting this knowledge on the web for everyone to access.

110. on 30 Mar 2009 at 7:16 am 110Zane Montgomery

Naxus,
You shouldn’t have an issue calling the function ‘process.m’ in your GUI .m file as long as the inputs/outputs (aka
arguments) match up. In your GUI you would want to have something like this:

c = process(a,b);

disp(c) % or whatever display code you may want. Look into a static text box.

This requires process.m to be in the same folder as your GUI files, but if it’s not, you can use the addpath feature
which is talked about here:

35 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

http://blinkdagger.com/?s=addpath#4

good luck,
Zane

111. on 30 Mar 2009 at 9:38 pm 111Offi

Hey! Thanks for the tutorials on your site. They’re really helpful!

I got a problem with the edit text though. I was trying to check the string inside the edit field after every keystroke so i
used the KeypressFcn. The problem is that the ‘String’ value of the edit field isn’t updated after the keystroke but only
after the callback i think although the pressed key already shows up in the GUI itself.
Does anyone know how to force MATLAB to update the ‘String’ value or is there another value that actually
represents the string shown in the edit text?

112. on 01 Apr 2009 at 2:02 am 112k8

Thank you very much!!!

113. on 08 Apr 2009 at 12:28 am 113naxus

thanks, Zane!
i’ll try doing that

114. on 11 Apr 2009 at 8:21 am 114vinod

this is a very good tutorial . thank u very much for this one.

115. on 14 Apr 2009 at 7:50 am 115moe

hi
i have to use a check box to give the user the option to hold the graph that has been plotted by a push button, can
someone please help me how i can programm the check box? thanks in advance

116. on 14 Apr 2009 at 8:54 am 116Zane Montgomery

Moe,
The these tutorials should be able to help you out with plotting the data:
http://blinkdagger.com/matlab/matlab-gui-tutorial-plotting-data-axes

The key code you’ll be needing will be something like this:

For your checkbox callback function

if(get(hObject,'Value'))==1 %Checked box has 'Value' of 1


hold on
else
hold off
end

% hold prevents the current axes from being overwritten when you plot a new graph

to hold a specific axes if you have multiples use:

hold(handles.AxisName, ‘on’)

I’ll leave it to you to play around with this.

HTH,
Zane

117. on 15 Apr 2009 at 8:53 am 117Zane Montgomery

36 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

@ Offi,

I talked with Doug at MathWorks ( http://blogs.mathworks.com/videos/ ). The conclusion was that “unfortunately, the
change in the edit box string does not really register in MATLAB until you hit enter, or change focus in the GUI”.

So it won’t update after every keystroke. You might be able to embed ActiveX or Java controls if you really need this
to happen, but it’s outside of my abilities.

Good luck,
Zane

118. on 15 Apr 2009 at 9:01 am 118moe

thank you very much Zane

119. on 16 Apr 2009 at 1:29 am 119Vander

Thanks!

120. on 16 Apr 2009 at 11:42 am 120Dianna

Hi again,

Is it possible to ’set’ the answer? Suppose I don’t want the answer to the a negative number. If the answer is going to
be negative, I want the static text of the answer to be automatically be 0. Do I use the code ‘if’?

total = str2num(a) + str2num(b);


c = num2str(total);

if (c &lt; 0) %c is the answer for the calculation


c = 0;
else
c = num2str(total);
end

121. on 16 Apr 2009 at 12:15 pm 121Dianna

Hey,

I just got it to work. So never mind my question

122. on 17 Apr 2009 at 7:33 am 122moe

Hi
i have a situation that i have a GUI with some edit text box that each box views a parameter from the work space, the
task is to modify and replace the new parameter with the existing one in the work space. can someone please help me?
thanks very much in advance

123. on 21 Apr 2009 at 8:37 pm 123Offi

Thanks a lot Zane!


It’s really great of you guys not just to give those great and easy to understand tutorials but also provide help with
problems!

124. on 26 Apr 2009 at 10:48 am 124lakshman

hia
thanks for tutorial
can you show me a simple example of signal
i mean if we want to create sine wave how we do that

125. on 28 Apr 2009 at 4:52 am 125Toon

37 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

IT IS FUCKING USEFULL! thx:)

126. on 07 May 2009 at 1:04 am 126Anonymous

I tried this demo, but It wouldnt work. I got this error message. Also, “get” and “num2str” didnt turn blue like shown.
Can you tell me whats wrong?

>> MyAdder
??? Error: File: MyAdder.m Line: 126 Column: 12
Expression or statement is incorrect–possibly unbalanced (, {, or [.

127. on 07 May 2009 at 7:02 am 127Zane Montgomery

Anon,

Don’t worry about the coloring you see from the site, not everything matches up perfectly. It’s mainly just a visual aide
when explaining the code.

MATLAB is very specific about opening and closing brackets/parentheses/etc. Check out your line 126 (or post it
here) and make sure you’ve closed every bracket you open and don’t have any loose ones floating around.

Good luck
Zane

128. on 12 May 2009 at 9:04 am 128eastmus

Hi Zane again and hi to all,

i have a “beginner” problem with matlab R2007b.


Whenever I create a GUI and save it in a folder somewhere (doesnt matter),
then I create a 2nd GUI, totally different name and files and I have even tried saving in same folder or a different
folder from the 1st GUI.
But then when I re-open the 1st GUI, it gives errors that it cant find the variables from the script file (.m).
Its like the .m and .fig are not linked anymore.

I also often get the window popup saying “File C:\…..\file.m is not found in the current directory or on the mathlab
path.” with the options to change dir, add to path or cancel/help.

I usually pick add to path.

In the file.m editor i can click on “Edit configurations for file.m” (its located under the green RUN arrow button, you
can reach it by clicking the small arrow down next to it)

In there i see a lot of files that are actually other projects and have nothing to do with this current file.
So I delete the others.

Also when I move files, they stop working

I cant find the configuration to actually seperate projects from each other and how to re-link m-file with the fig-file

129. on 13 May 2009 at 11:30 am 129mmb4good

thanks alot

130. on 14 May 2009 at 1:50 am 130Berkan

The official MatLab GUIDE video does not explain the most important bit: callback functions at the backend.
This is in contrast is an excellent tutorial, thank you for your effort.

peace,

38 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

Berkan

131. on 15 May 2009 at 10:14 pm 131Payam

Hi
thank you for your wonderful site.
I have a problem
I can not save a variable inside my GUI
I use a GUI to get an equation for me and save it as a variable but it only prints the answer on Matlab command
window on push button press.
When i put my command on output function it dows not get any equation it shows zero only.
How can i use the output function?
Thanks a lot

132. on 16 May 2009 at 2:56 pm 132Anudhan

Thank you. This tutorial helped me a lot……..

133. on 18 May 2009 at 2:55 am 133inu

waaaaaah………..
what a great innovation!!!!!!!!!!
u know saracasm….i guess

134. on 19 May 2009 at 7:08 pm 134usman

I have used three push buttons in my GUI now i want to use the output results of the two push buttons dat goes to a
static text box to be called in the third pushbutton call back as input;

e.g if output of the first push button is “a”

and out put of second push button is “b”

then i want to call both thses outputs in pushbutton three to do c=a+b;


and then store to another static text

kindly answer ASAP

how to do this?

135. on 21 May 2009 at 2:17 pm 135Doğuş Metin

these are really very good examples for people new on matlab gui. its possible to understand easily. thanks for all.

136. on 21 May 2009 at 11:18 pm 136Praveen

Dear sir,
Thank you very much for this simple and useful tutorial on GUI in matlab, expecting more tutorials like this.

137. on 23 May 2009 at 6:49 am 137zak

hi
you can’t believe how much i was happy when i have run the first matlab GUI,
thank you for making the impossible (for me) possible.
i will study all the other tutorials
thanks

138. on 28 May 2009 at 5:35 pm 138Bilal Hussain

Thankyou brother

39 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

139. on 03 Jun 2009 at 3:12 am 139Güncel ve Günlük Blog! | JunkChorn » Hocam Sesimi Duyuyor Musun? #3

[...] Ebrar denen şahsiyet ile hiç işim olmaz. Buyrun, ödevdeki butonlara görev atamayı anlatan çok güzel bir blog.
Bunun arkadan konuşmak olduğunu düşünüyor da olabilirsiniz, ama ben yargısız infaz [...]

140. on 09 Jun 2009 at 3:46 am 140asder don

Great tutorial, I still have some questions though.

What do I have to do differently to make the push button take the factorial of the variable? The tags and strings are a
bit confusing, not to mention the whole coding of the .m file afterward. An e-mail response would be greatly
appreciated.

Thanks

141. on 09 Jun 2009 at 3:36 pm 141Zane Montgomery

@ asder,

To get a grasp on the strings and tags, I recommend following each step in the tutorial and ask questions on specific
parts if they arise. To display the factorial of some input number, the main part you will want to edit is Step 4 of the
“Writing the Code for the GUI Callbacks” section. Find the section that looks similar to what I have below, but notice
the changes:
a = get(handles.input1_editText,'String');
b = get(handles.input2_editText,'String');
% a and b are variables of Strings type, and need to be converted
% to variables of Number type before they can be added together

total = factorial(str2num(a)) %CHANGE IS HERE, b is now ignored completely


c = num2str(total);
% need to convert the answer back into String type to display it
set(handles.answer_staticText,'String',c);
guidata(hObject, handles);

Let us know if you have specific questions.


-Zane

142. on 10 Jun 2009 at 12:31 am 142asder don

Zane,
This is pretty much what I did, except I emitted b since I only have one edit text. It doesn’t seem to work, however. I
get something similar to 175.001 as the answer regardless of what I put in. Here is a screenshot of what I have. The
strings and tags are the same, save for the push button which is tagged “factorize_pushbutton1″

http://img188.imageshack.us/img188/2361/54570432.png

Again, thank you.

143. on 10 Jun 2009 at 1:10 am 143asder don

I just got it! The command is apparently;

total = gamma (str2num (a) + 1);

Thank you.

144. on 10 Jun 2009 at 1:17 am 144dileep d

Dear friends,

I went through the mail chain.I am a student(masters), i want to take input form a hardware device(particularly
ultrasound probe) in real time and plot the input data in real time.

40 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

since i am new to matlab, some matlab experts out here can help me.

I dont have any idea if this can be done in matlab or not, but i request if some body know it to help me to do this.

Regards,
DIleep.
email id:dil639@yahoo.com

145. on 10 Jun 2009 at 1:17 am 145dileep d

Dear friends,

I went through the mail chain.I am a student(masters), i want to take input form a hardware device(particularly
ultrasound probe) in real time and plot the input data in real time.

since i am new to matlab, some matlab experts out here can help me.

I dont have any idea if this can be done in matlab or not, but i request if some body know it to help me to do this.

after this i want to develope a gui for this.

Regards,
DIleep.
email id:dil639@yahoo.com

146. on 10 Jun 2009 at 9:00 am 146Anonymous

I DID’NT GET ANSWERE


FOR ANY VALUES THE ANSWERBOX SHOWS 0 ONLY
WHY

147. on 10 Jun 2009 at 9:07 am 147Anonymous

?? Reference to non-existent field ‘input1_editText’.

Error in ==> MAGUI>add_pushbutton_Callback at 150


a = get(handles.input1_editText,’String’);

Error in ==> gui_mainfcn at 96


feval(varargin{:});

Error in ==> MAGUI at 42


gui_mainfcn(gui_State, varargin{:});

Error in ==>
guidemfile>@(hObject,eventdata)MAGUI(’add_pushbutton_Callback’,hObject,eventdata,guidata(hObject))

??? Error while evaluating uicontrol Callback

148. on 10 Jun 2009 at 9:08 am 148Anonymous

?? Reference to non-existent field ‘input1_editText’.

Error in ==> MAGUI>add_pushbutton_Callback at 150


a = get(handles.input1_editText,’String’);

Error in ==> gui_mainfcn at 96


feval(varargin{:});

Error in ==> MAGUI at 42


gui_mainfcn(gui_State, varargin{:});

41 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

Error in ==>
guidemfile>@(hObject,eventdata)MAGUI(’add_pushbutton_Callback’,hObject,eventdata,guidata(hObject))

??? Error while evaluating uicontrol Callback

I GOT ABOVE ERROR WHAT CAN I DO

149. on 11 Jun 2009 at 5:41 am 149lakshman

?? Reference to non-existent field ‘input1_editText’.


Error in ==> MAGUI>add_pushbutton_Callback at 150
a = get(handles.input1_editText,’String’);
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> MAGUI at 42
gui_mainfcn(gui_State, varargin{:});
Error in ==>
guidemfile>@(hObject,eventdata)MAGUI(’add_pushbutton_Callback’,hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback
what is the mistake

150. on 18 Jun 2009 at 10:52 am 150Quan, you're my GUI hero

Hi Quan,
I’m a senior in college, and I needed a job during the summer. I just started working about a month ago. My boss
wanted me to GUIs with MATLAB (as well as other MATLAB related tasks). My MATLAB skills aren’t the greatest,
and I didn’t know MATLAB could make GUIs before then. I was too scared to tell my boss that I’m useless. So
naturally, I turned to the internet for help.

I’m so glad I found your site! I’ve read all of your GUI posts and almost every other blinkdagger post (you guys just
make it interesting). Thank you! My job is safe because of blinkdagger (Quan in particular)!

Again, you guys do amazing work and you’ve really helped me out! I’m suprised that I’m actually excited about
MATLAB now. Thanks!

I was wondering if you’d perhaps do a tutorial on Active X controls someday….

Thanks again,
Joe

151. on 19 Jun 2009 at 4:42 am 151shalomi

Thank you! very helpful and clear tutorial.

152. on 19 Jun 2009 at 10:02 pm 152usha

this code great help to me.. i run add program.. how to clear text field

153. on 13 Jul 2009 at 6:39 pm 153siti

how to make a GUI when i click the pushbutton on “start” it can control the scanner interface.means when i click a
buton in GUI, scanner interface will comeout..how to make it happen?

154. on 20 Jul 2009 at 1:36 pm 154Meteja

Hi there….

Excellent tutorial….really help me a lot… but i’ve got one question and need your favour/help….

how to open a .txt file and display it on the static text….for example let say readme.txt file which consist of numbers
and words/text…

42 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

Thanks

155. on 22 Jul 2009 at 1:52 am 155Dhila Othman

Thank for all the guidelines….


It’a very helpful!!!!!

156. on 23 Jul 2009 at 3:49 pm 156Astromoof

Hi,

i like your myadder gui, but i want it so as the user types in the inputs it automatically updates the answer box without
using a pushbutton. Is that possible?

Thanks

157. on 26 Jul 2009 at 8:59 am 157Zane Montgomery

Astromoof,

It is not possible to have the inputs update while you’re typing, but you can type in an input and then either: click away
from the box, or hit ‘enter’ and have them update. To do this, just put the code for you pushbuttoncallback into the
callback function for the edit text box.

Good luck!
-Zane

158. on 29 Jul 2009 at 5:01 am 158lakshman

hai
thanks for ur model.
if we want take some text as input and the value of text is declared in workspace
how?

159. on 29 Jul 2009 at 9:29 pm 159Amgalan

Hi?
I made one interface in Matlab. that is running now. But I wanna to rearrange that GUI. So that I want to know “How
to apply TAB strip in Marlab? ”
Is there anyone help me?

160. on 05 Aug 2009 at 2:20 am 160lak

hai
thanks for ur model.
if we want take some text as input and the value of text is declared in workspace
how?

161. on 12 Aug 2009 at 12:20 am 161Chiara

Hi,
i’m an italian student, and i’m trying to make a GUI, but i’ve a problem. When I use ‘global’ in a function to call a
variable defined in an other GUI function, matlab draws attention with an error. If I define the variable in the first
function, so without use global, matlab doesn’t give me any errors!!
For examples,
global intermedio;
I=im2double(intermedio);
where the variable ‘intermedio’ is defined above, in another GUI function. Matlab gives me an error. But if i define
‘intermedio’ in this function, i haven’t bugs!
Is there anyone help me?..thank u all, and sorry for my bad english!

43 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

162. on 15 Aug 2009 at 6:52 am 162dbsjro

Man this is REALLY helpfull


You should be as ->help Quan Quach <-
lol

163. on 22 Aug 2009 at 12:19 am 163Zor

Excellent tut
Thanx for the effort!

164. on 22 Aug 2009 at 7:05 am 164vinodh

hi
this website is very very useful.thank you very much.

165. on 28 Aug 2009 at 10:59 pm 165daba

Thanks

166. on 01 Sep 2009 at 10:55 am 166mark

it’s possible to use GUI to create a moving point or something like a 2D randon walker? Many thanks

167. on 08 Sep 2009 at 8:18 am 167Herman

It’s very powerful!


Many thanks for your tutorial…Makes more open my eyes about powerful of matlab.

168. on 09 Sep 2009 at 8:50 pm 168ruchita

how to add a circuit diagram in a gui figure

169. on 10 Sep 2009 at 8:57 am 169mark

Please can someone asnwer me?..it’s possible to use GUI to create a moving point or something like a 2D randon
walker? Many thanks

170. on 10 Sep 2009 at 11:46 pm 170mirza

mirza gango hy

171. on 24 Sep 2009 at 12:38 am 171CB


??? Error using ==&gt; str2num at 33
Requires string or character array input.

Error in ==&gt; GUIMagnetfalt&gt;calc_button_Callback at 450


total= str2num(a) + str2num(b) + str2num(c) + str2num(d) + str2num(e) + str2num(f) + str2num(g) +
str2num(h) + str2num(i);

Error in ==&gt; gui_mainfcn at 96


feval(varargin{:});

Error in ==&gt; GUIMagnetfalt at 42


gui_mainfcn(gui_State, varargin{:});

Error in ==&gt;
guidemfile&gt;@(hObject,eventdata)GUIMagnetfalt('calc_button_Callback',hObject,eventdata,guidata(

??? Error while evaluating uicontrol Callback

I try to add the numbers, however Matlab complains that input should be done in an array. What may be the problem?
Is num supposed to be in an array? What type (e.g. num, double, int or char) should I use if I just want to convert input

44 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

string and add them together?

172. on 26 Sep 2009 at 12:00 am 172Niketan

changes made by niketan


type this at matlab command to check whether specify file is original or copied
your current dir want to be directory, where your specifed file is.

————————

[a direc] = dos(’dir Target_Detection.m’); % Obtain the directory listing of the file on the operating system
newlines = find(double(direc) == 10); % Check for newline characters in the returned string
dateloc = newlines(5)+1; % In DOS, the creation date for the file will show up at the fifth line of the output

createDate = direc(dateloc:(dateloc+21)); % Retrieve the creation date in a string


[y, m, d, h, mn,s] = datevec(createDate);
UserFiledate = datenum(y, m, d, h, mn,s);

OriginalFileDate = datenum(2009,09,26,12,13,0);

if (UserFiledate > OriginalFileDate) % Check if the createDate for the file is later that a specific time
disp(’Copied File’)
else
disp(’Original File’)
end

173. on 01 Oct 2009 at 11:38 pm 173minjae

Hi, I’m a university student in Korea.


This website is awesome and very useful for anyone who studies MATLAB, like me!
I sincerely appreciate your job. Thank you!

174. on 09 Oct 2009 at 5:53 pm 174Craig

Thanks SO much for this website. As a newbie to MATLAB I was going nutty reading help files and the Mathworks
website. After reading your tutorials the mist has parted.

175. on 18 Oct 2009 at 7:09 am 175Gustav

Thanks, the example is simple and clear for beginners.

176. on 21 Oct 2009 at 4:56 am 176selva

thank you sir great tutorial,thx for the tutorial

177. on 22 Oct 2009 at 9:00 pm 177Berlyn

how can i downlaod matlab?

178. on 06 Nov 2009 at 9:53 am 178piyush

Please tell me, what code shall i include, if I want a close push button and perform a simple GUI close.

179. on 10 Nov 2009 at 11:44 pm 179Megalla

hi there…thanks 4 the perfect tutorial….it was a very easy-to-understand tutorial…;-) but i need some one who can
help me out in coming out with a loop like a for loop and all using MATLAB ….so if anyone can help me….pls do
kindly mail me at megal8725@hotmail.com…i dont mind paying u’ll….

thanks a lot

45 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

180. on 14 Nov 2009 at 12:50 pm 180Gav

Very helpfull introduction.

181. on 16 Nov 2009 at 7:16 am 181momena

thanks a lot dear….i actually knew nothing about creating GUI….but now i can make one

182. on 17 Nov 2009 at 2:36 pm 182Zox

Hello everyone,

Does anyone please know how to make an input using ‘e’?


For example, i’d like to input number 2e-25 - and surely i would like to avoid typing the whole number with this many
decimals! Is there any chance that i could do this in more elegant way?

Thanx a lot!

183. on 17 Nov 2009 at 3:55 pm 183Zane Montgomery

Zox,

Your syntax of ‘2e-25′ should work as an input. Let us know if you get any errors using that or if you have a specific
usage question.

184. on 29 Nov 2009 at 7:09 pm 184Satvik

Hey ,
Great Tutorial
I was wondering if you could add to the “gcf” part of a designing a GUI.

Cheers

185. on 30 Nov 2009 at 9:47 pm 185valerie

hi

May i know how to view a web cam inside the GUI interface?
Thanks

valerie

186. on 01 Dec 2009 at 6:15 pm 186Sammy

hi
Firstly thx for your tutorials. Really helpful for beginners like me.
keep it up.
the problem i’m facing is that i’m writting a program that enables a user to enter values into the gui like the start time
and stop and then click a button that will then plot either a sine wave or unit step function depending on the button
pressed.
I have tried to follow your tutorials and incoperate the different functionalities but it not working. below is piece of my
code, pliz help me figure out the problem.
thanks again.

function varargout = untitled(varargin)


% UNTITLED M-file for untitled.fig
% UNTITLED, by itself, creates a new UNTITLED or raises the existing
% singleton*.
%
% H = UNTITLED returns the handle to a new UNTITLED or the handle to
% the existing singleton*.
%

46 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

% UNTITLED('CALLBACK',hObject,eventData,handles,...) calls the local


% function named CALLBACK in UNTITLED.M with the given input arguments.
%
% UNTITLED('Property','Value',...) creates a new UNTITLED or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before untitled_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to untitled_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help untitled

% Last Modified by GUIDE v2.5 02-Dec-2009 00:31:13

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @untitled_OpeningFcn, ...
'gui_OutputFcn', @untitled_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin &amp;&amp; ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before untitled is made visible.


function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to untitled (see VARARGIN)

% Choose default command line output for untitled


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes untitled wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = untitled_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%DO NOT ALTER THE CODE ABOVE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function Start_editText_Callback(hObject, eventdata, handles)


% hObject handle to Start_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB

47 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of Start_editText as text


% str2double(get(hObject,'String')) returns contents of Start_editText as a double
input = str2double(get(hObject,'String'));
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.


function Start_editText_CreateFcn(hObject, eventdata, handles)
% hObject handle to Start_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc &amp;&amp; isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor
set(hObject,'BackgroundColor','white');
end

function Stop_editText_Callback(hObject, eventdata, handles)


% hObject handle to Stop_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of Stop_editText as text


% str2double(get(hObject,'String')) returns contents of Stop_editText as a double
input = str2doudle(get(hObject,'String'));
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.


function Stop_editText_CreateFcn(hObject, eventdata, handles)
% hObject handle to Stop_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc &amp;&amp; isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor
set(hObject,'BackgroundColor','white');
end

function Step_editText_Callback(hObject, eventdata, handles)


% hObject handle to Step_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of Step_editText as text


% str2double(get(hObject,'String')) returns contents of Step_editText as a double
input = str2double(get(hObject,'String'));
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.


function Step_editText_CreateFcn(hObject, eventdata, handles)
% hObject handle to Step_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc &amp;&amp; isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor
set(hObject,'BackgroundColor','white');
end

function Frequency_editText_Callback(hObject, eventdata, handles)


% hObject handle to Frequency_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

48 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

% Hints: get(hObject,'String') returns contents of Frequency_editText as text


% str2double(get(hObject,'String')) returns contents of Frequency_editText as a double
input = str2double(get(hObject,'String'));
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.


function Frequency_editText_CreateFcn(hObject, eventdata, handles)
% hObject handle to Frequency_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc &amp;&amp; isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor
set(hObject,'BackgroundColor','white');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%CODE ABOVE FOR EDIT TEXT
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% --- Executes on button press in Step_pushbutton.


function Step_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to Step_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
start_time =get(handles.start_editText,'String');
step_time = get(handles.step_editText,'String');
stop_time = get(handles.stop_editText,'String');
axes(handles.axes1)
t = [ 0 start_time step_time stop_time ] %defining the X-axis
m = [ 0 0 1 1] %defining the Y-axis
plot ( t,m ) %plots the graph of all the lines
%defined by 't' versus 'm'
grid on %adds main grid lines to the current axes
xlabel ('time') %labels the x-axis of the current axes
ylabel ('magnitude') %labels the y-axis of the current axes
title ('plot of unit step function of user defined duration')%adds title to the current axes
guidata(hObject, handles); %updates the handles

% --- Executes on button press in Impulse_pushbutton.


function Impulse_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to Impulse_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
start_time = get(handles.start_editText,'String');
step_time = get(handles.step_editText,'String');
stop_time = get(handles.stop_editText,'String');
axes(handles.axes1)
t = [ 0 start_time step_time step_time step_time stop_time ] %defining the x-axis
m = [ 0 0 0 1 0 0 ] %defining the y-axis
plot ( t,m ) %plots the graph of a
grid on %adds main grid to th
xlabel ('time') %labels the x axis
ylabel ('magnitude') %labels the y axis
title ('plot of unit impulse function of user defined duration') %adds title to curren
guidata(hObject, handles); %updates the handles

% --- Executes on button press in Sine_pushbutton.


function Sine_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to Sine_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
start_time = get(handles.start_editText,'String');
fundamental_frequency = get(handles.frequency_editText,'String');
stop_time = get(handles.stop_editText,'String');
axes(handles.axes1)

49 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

time = start_time:0.01:stop_time; %defines the time base functi


x = sin(time*fundamental_frequency*2*pi) %generates a sine wave with s
%time base function 'time' an

plot(time,x), grid on %plots the graph of all the lines


%defined by time versus sin(x
%and adds main grid lines to
xlabel ('Time') %labels the x axis
ylabel ('Frequency') %labels the y axis
title ('plot of sine wave of user defined frequency and duration') %adds a title to the graph
guidata(hObject, handles); %updates the handles

% --- Executes on button press in Sawtooth_pushbutton.


function Sawtooth_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to Sawtooth_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
start_time = get(handles.start_editText,'String');
fundamental_frequency = get(handles.frequency_editText,'String');
stop_time = get(handles.stop_editText,'String');
axes(handles.axes1)
time = start_time:0.01:stop_time; %defines the time base fu
x = sawtooth(time*fundamental_frequency*2*pi, width) %generates a sawtooth wav
%time,frequency and width

plot(time,(x)), grid on %plots the graph of all t


%defined by time versus (
%and adds main grid lines
xlabel ('Time') %labels the x axis
ylabel ('Frequency') %labels the y axis
title ('plot of square wave of unit magnitude over user defined period')%adds a title to the grap

guidata(hObject, handles); %updates the handles

187. on 03 Dec 2009 at 9:05 am 187shiv

hello sir
can u tell me
how can i do this

on the single Gui i want 2 image along with 2 buttons


after clicking the button the image should be open in small part of GUI

188. on 03 Dec 2009 at 9:07 am 188shiv

Sir i want to extract the RGB value of the part of the image selected by user

but
the gui contains many button and this image on single GUI(frame)

189. on 04 Dec 2009 at 7:56 am 189kiran grewal

thanks for the great help………

190. on 06 Dec 2009 at 8:57 pm 190uDjo

thx for the tutorial

191. on 08 Dec 2009 at 8:49 am 191S.M Negranol

Having some serious trouble with this one - even using the source code directly invokes the same error:

??? Error while evaluating uicontrol Callback

??? Attempt to reference field of non-structure array.

50 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

Error in ==> myAdder>add_pushbutton_Callback at 134


a = get(handles.input1_editText,’String’);

Error in ==> gui_mainfcn at 96


feval(varargin{:});

Error in ==> myAdder at 42


gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback

Neither this, nor another program I got working based off this that worked elsewhere, will run properly on the version
of MATLAB I’m using (7.5.0) - Any help would be VASTLY appreciated.

192. on 08 Dec 2009 at 12:56 pm 192Zane Montgomery

Hi S.M Negranol,

I’m gonna guess your issue is with the tag of you editText button. Double click your first editText button in the GUIDE
editor to bring up the property inspector.

Make sure the Tag property has the name: ‘input1_editText’

You may need to check/fix your other buttons too, but make sure the tag property for all of your buttons match up
with the get(handles.buttonName) commands you’re using.

good luck,
Zane

193. on 12 Dec 2009 at 10:16 am 193Archana

helo sir..
am a newbie to matlab..
yesterday, i tried your tutorial step by step..
but, i got an error..

??? There is no ‘String’ property in the ‘figure’ class.

Error in ==> firstprogram>add_Callback at 148


set(handles.output,’String’,c);

Error in ==> gui_mainfcn at 75


feval(varargin{:});

Error in ==> firstprogram at 44


gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback.

can you help me sir?? pls..

194. on 13 Dec 2009 at 12:21 pm 194midodo

‫ ازاى ممكن اعمل الة حاسبة باستخدام‬matlab GUI

195. on 14 Dec 2009 at 7:46 am 195STB

how can we edit a GUI ?


if it save as .fig

196. on 17 Dec 2009 at 9:53 am 196king

51 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

help me please badly needed… how can i display the answer of my transfer function to my static text……

function varargout = expt4(varargin)


% EXPT4 M-file for expt4.fig
% EXPT4, by itself, creates a new EXPT4 or raises the existing
% singleton*.
%
% H = EXPT4 returns the handle to a new EXPT4 or the handle to
% the existing singleton*.
%
% EXPT4(’CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in EXPT4.M with the given input arguments.
%
% EXPT4(’Property’,'Value’,…) creates a new EXPT4 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before expt4_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to expt4_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
% instance to run (singleton)”.
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help expt4

% Last Modified by GUIDE v2.5 17-Dec-2009 23:31:08

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct(’gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @expt4_OpeningFcn, …
‘gui_OutputFcn’, @expt4_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before expt4 is made visible.


function expt4_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to expt4 (see VARARGIN)

% Choose default command line output for expt4


handles.output = hObject;

% Update handles structure

52 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

guidata(hObject, handles);

% UIWAIT makes expt4 wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% — Outputs from this function are returned to the command line.


function varargout = expt4_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

function num_Callback(hObject, eventdata, handles)


% hObject handle to num (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,’String’) returns contents of num as text


% str2double(get(hObject,’String’)) returns contents of num as a double

% — Executes during object creation, after setting all properties.


function num_CreateFcn(hObject, eventdata, handles)
% hObject handle to num (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,'white’);
end

function den_Callback(hObject, eventdata, handles)


% hObject handle to den (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,’String’) returns contents of den as text


% str2double(get(hObject,’String’)) returns contents of den as a double

% — Executes during object creation, after setting all properties.


function den_CreateFcn(hObject, eventdata, handles)
% hObject handle to den (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,'white’);
end

% — 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)

53 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

guidata(hobject,handles)
a=str2num(get(handles.num,’String’));
b=str2num(get(handles.den,’String’));

sys=(tf(a,b))

set(handles.text3,’String’,sys)

% — Executes during object creation, after setting all properties.


function text3_CreateFcn(hObject, eventdata, handles)
% hObject handle to text3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

197. on 18 Dec 2009 at 2:10 pm 197Kusse

Thanks som much. I run my first GUI today.

198. on 18 Dec 2009 at 2:11 pm 198Kusse

Thank you so much. I run my first GUI today.

199. on 19 Dec 2009 at 9:21 pm 199Engineer M Saeed Anwer

Gr8
very helpful for the beginners

200. on 14 Jan 2010 at 6:04 am 200Sheh

Fantastic tutorial!

201. on 17 Jan 2010 at 1:04 am 201abhishek

sir currently i am trying to develop a graph manipulating application using matlab ,can you help me regarding this
project . please and thanks

202. on 19 Jan 2010 at 7:53 am 202kanokwat


function varargout = demo1(varargin)
% DEMO1 M-file for demo1.fig
% DEMO1, by itself, creates a new DEMO1 or raises the existing
% singleton*.
%
% H = DEMO1 returns the handle to a new DEMO1 or the handle to
% the existing singleton*.
%
% DEMO1('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in DEMO1.M with the given input arguments.
%
% DEMO1('Property','Value',...) creates a new DEMO1 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before demo1_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to demo1_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help demo1

% Last Modified by GUIDE v2.5 19-Jan-2010 11:11:47

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;

54 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

gui_State = struct('gui_Name', mfilename, ...


'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @demo1_OpeningFcn, ...
'gui_OutputFcn', @demo1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin &amp;&amp; ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before demo1 is made visible.


function demo1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to demo1 (see VARARGIN)

% Choose default command line output for demo1


handles.output = hObject;
set(hObject,'toolbar','figure');
% Update handles structure
guidata(hObject, handles);

% UIWAIT makes demo1 wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = demo1_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

% --- 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)
%axes(handles.axes1)
t=0:0.001:0.1
a=get(handles.edit1,'string')
x=str2num(a)
y=sin(2*pi*50*x)
plot(handles.axes1,t,y)

guidata(hObject,handles);

function edit1_Callback(hObject, eventdata, handles)


% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text


% str2double(get(hObject,'String')) returns contents of edit1 as a double

% --- Executes during object creation, after setting all properties.


function edit1_CreateFcn(hObject, eventdata, handles)

55 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

% hObject handle to edit1 (see GCBO)


% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc &amp;&amp; isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor
set(hObject,'BackgroundColor','white');
end

If my input is sin(2*pi*50*t)
but program can’t read t
t=time

what should i do ?

203. on 21 Jan 2010 at 5:32 pm 203Yunus

Thank you for such a clear tutorial. It really helps.

204. on 03 Feb 2010 at 7:33 pm 204shill123

Hello..
M designing DTMF encoder/decoder in matlab using GUI..
here i want a figure to be displayed by checking a push button press in someother callback function,, how to do it??

205. on 04 Feb 2010 at 1:32 am 205Anshul

Thank you very much for such great tutorial.

206. on 05 Feb 2010 at 1:05 am 206amit hansani

hello,
my final year project is based on image segmentation using fuzzy connectedness…can u plz guide me through
this….how can i include a image in matlab using GUI…

207. on 10 Feb 2010 at 12:10 pm 207Kerem

Hi,

Thanks a lot for such a nice and simple to understand GUI tutorial

208. on 13 Feb 2010 at 6:28 pm 208lakshman

simply great tutorial…very lucid and easy to understand…..thanks a lot

209. on 15 Feb 2010 at 4:49 pm 209AkilaMike

Thanx Quan….

This was really helpful. I am personally in need to develop a GUI to be able to load an image and select coordinates on
it as well as to clear those selection by using a push button.

I would be grateful if you have any resources which can help me in this.

Thank you!
Mike.

210. on 15 Feb 2010 at 11:21 pm 210Iris

Thanks for your tutorial! It’s very helpful and I finally laid out a GUI with buttons that work.

However, I was trying to make an adjustable horizontal line in a GUI plot. Is it possible? Any resources that I can look

56 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

into?

Thanks,
Iris

211. on 17 Feb 2010 at 6:35 am 211hidayah

how do i write the command if i need to instruct the user to insert values of an equation?
i have an assignment which need the input from the user but i don’t know how to begin….the values are needed to be
inserted into matrix and further algorithms will be carried out using the values inserted by the user….how do i do this?

212. on 21 Feb 2010 at 10:52 pm 212maddy

i am getting problem in doing this problem


MATLAB CODE
function varargout = myadder(varargin)
% MYADDER M-file for myadder.fig
% MYADDER, by itself, creates a new MYADDER or raises the existing
% singleton*.
%
% H = MYADDER returns the handle to a new MYADDER or the handle to
% the existing singleton*.
%
% MYADDER(’CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in MYADDER.M with the given input arguments.
%
% MYADDER(’Property’,'Value’,…) creates a new MYADDER or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before myadder_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to myadder_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
% instance to run (singleton)”.
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help myadder

% Last Modified by GUIDE v2.5 22-Feb-2010 12:22:58

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct(’gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @myadder_OpeningFcn, …
‘gui_OutputFcn’, @myadder_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

57 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

% — Executes just before myadder is made visible.


function myadder_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to myadder (see VARARGIN)

% Choose default command line output for myadder


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes myadder wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% — Outputs from this function are returned to the command line.


function varargout = myadder_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

function input1_editText_Callback(hObject, eventdata, handles)


% hObject handle to input1_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,’String’) returns contents of input1_editText as text


% str2double(get(hObject,’String’)) returns contents of input1_editText as a double
%store the contents of input1_editText as a string. if the string
%is not a number then input will be empty
input = str2num(get(hObject,’String’));

%checks to see if input is empty. if so, default input1_editText to zero


if (isempty(input))
set(hObject,’String’,'0′)
end
guidata(hObject, handles);

% — Executes during object creation, after setting all properties.


function input1_editText_CreateFcn(hObject, eventdata, handles)
% hObject handle to input1_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,'white’);
end

function input2_editText_Callback(hObject, eventdata, handles)


% hObject handle to input2_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

58 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

% Hints: get(hObject,’String’) returns contents of input2_editText as text


% str2double(get(hObject,’String’)) returns contents of input2_editText as a double
%store the contents of input1_editText as a string. if the string
%is not a number then input will be empty
input = str2num(get(hObject,’String’));

%checks to see if input is empty. if so, default input1_editText to zero


if (isempty(input))
set(hObject,’String’,'0′)
end
guidata(hObject, handles);

% — Executes during object creation, after setting all properties.


function input2_editText_CreateFcn(hObject, eventdata, handles)
% hObject handle to input2_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,'white’);
end

% — Executes on button press in add_pushbutton.


function add_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to add_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

a = get(handles.input1_editText,’String’);
b = get(handles.input2_editText,’String’);
% a and b are variables of Strings type, and need to be converted
% to variables of Number type before they can be added together

total = str2num(a) + str2num(b);


c = num2str(total);
% need to convert the answer back into String type to display it
set(handles.answer_staticText,’String’,c);
guidata(hObject, handles);

213. on 26 Feb 2010 at 7:13 am 213Debasish Sarker

Plz..help me..and if possible email me to my email address.

I want to modify a gui.m file..my problem is..I have 3 m files of 3 equations. in these equations there are 2 unknown
variables.

from gui.fig i want to input these 2 unknown values by edit text and select an equation by pop-menu and get the result.

How can I manage gui.m file of this problem?? anyone please help me..

214. on 04 Mar 2010 at 11:15 pm 214Ritu

Hi,
I m really Thankfull 2 u for this nice and easily understandable tutorial.

215. on 05 Mar 2010 at 3:05 am 215Alen

Hi, can you teach me how to generate sine wave in GUI?

59 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

Thank you

216. on 07 Mar 2010 at 1:45 am 216Anonymous

supper

217. on 08 Mar 2010 at 9:59 am 217elea

thank you so much for the tutorial

218. on 13 Mar 2010 at 7:58 am 218dut eden

hey i have one Q

how to get read for a matrix form..eg: i want to read 2000 4000 in static text both at the same time..

219. on 13 Mar 2010 at 6:50 pm 219raj

hey can u help me i have a program in which i am reading no of frames using ‘mmreader’
and then after reading all frames
reading one particular frame as original and on converted to bW
now i want to insert my prog to GUI
but i dont know where excatlly i need to insert my matlab code in GUI (bcoz this is first time i am working with GUI)
as i want to load the image and then enter to no of frame i want to read
and save it

plzz help me out

220. on 13 Mar 2010 at 6:53 pm 220raj

hey can u help me i have a program in which i am reading no of frames using ‘mmreader’
and then after reading all frames
reading one particular frame and convert it to bW
now i want to insert my prog to GUI
but i dont know where excatlly i need to insert my matlab code in GUI (bcoz this is first time i am working with GUI)
as i want to load the video and then enter to no of frame i want to read
and save it

plzz help me

221. on 14 Mar 2010 at 7:47 am 221nandit

I had a one problem. I just want to design a calculator same as TI-89 by using a MATLAB, but I didn’t know from
where should I look the information. Somebody told you shall have to look at tutorial, but I didn’t get nothing over
there. May be I am thinking that you can help me from figue out where the information I can find?

222. on 14 Mar 2010 at 7:49 am 222nandit

223. on 19 Mar 2010 at 12:11 pm 223saifi

i m beggner please help me to learn GUI

224. on 19 Mar 2010 at 2:59 pm 224glasnost

Well Done! I Like it!

225. on 19 Mar 2010 at 5:21 pm 225Hiba

Hello dears
I have an assignment to load an image to the Matlab GUI and 4 letters around it (a letter at each side of the image).
Then in case a pushbotton is pressed, numbers are changed in random fashion. I wish to hear a clue in this with fully

60 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

appreciation.

hiba

226. on 30 Mar 2010 at 2:43 am 226ANIL KUMAR

hello,

i need your help in my project ,actually i need a matlab program to simulate optical waveguide parameters.

227. on 01 Apr 2010 at 1:08 pm 227thanks

i really love you …..

228. on 09 Apr 2010 at 11:36 pm 228theepak

thanks …very very usefull material


simpler to understand…
gret job sir..

229. on 10 Apr 2010 at 10:15 pm 229Mido_Ban

hahahaha… wow, About 2 years ago I came to this site to learn how to use listchecker for dota…
Now in college I needed to find some Matlab help and HERE I Come to the same website.
Thanks blinkdagger, although in game one of my clan member actually has that name >_> and i doubt thats you
because he’s like a senior in high school lulz.

230. on 11 Apr 2010 at 2:17 am 230Priyankar

sir,
i facing a trouble by modifying your source code to use it for finding the z transform of a function that i enter into the
edit box ….can you please help me in this regards…..
here the source code that i made for it ..if u can identify the problem…
function varargout = ztrans(varargin)
% ZTRANS M-file for ztrans.fig
% ZTRANS, by itself, creates a new ZTRANS or raises the existing
% singleton*.
%
% H = ZTRANS returns the handle to a new ZTRANS or the handle to
% the existing singleton*.
%
% ZTRANS(’CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in ZTRANS.M with the given input arguments.
%
% ZTRANS(’Property’,'Value’,…) creates a new ZTRANS or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before ztrans_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to ztrans_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
% instance to run (singleton)”.
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help ztrans

% Last Modified by GUIDE v2.5 11-Apr-2010 14:55:40

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct(’gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @ztrans_OpeningFcn, …
‘gui_OutputFcn’, @ztrans_OutputFcn, …
‘gui_LayoutFcn’, [] , …

61 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

‘gui_Callback’, []);
if nargin &amp;&amp; ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before ztrans is made visible.


function ztrans_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to ztrans (see VARARGIN)

% Choose default command line output for ztrans


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes ztrans wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% — Outputs from this function are returned to the command line.


function varargout = ztrans_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

function input1_editText_Callback(hObject, eventdata, handles)


%store the contents of input1_editText as a string. if the string
%is not a number then input will be empty
input = str2func(get(hObject,’String’));

%checks to see if input is empty. if so, default input1_editText to zero


if (isempty(input))
set(hObject,’String’,'0′)
end
guidata(hObject, handles);
% hObject handle to input1_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,’String’) returns contents of input1_editText as text


% str2double(get(hObject,’String’)) returns contents of input1_editText as a double

% — Executes during object creation, after setting all properties.


function input1_editText_CreateFcn(hObject, eventdata, handles)
% hObject handle to input1_editText (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


% See ISPC and COMPUTER.
if ispc &amp;&amp; isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor
set(hObject,’BackgroundColor’,'white’);
end

% — Executes on button press in ztrans_pushbutton.


function ztrans_pushbutton_Callback(hObject, eventdata, handles)
syms n
a = get(handles.input1_editText,’String’);
% a and b are variables of Strings type, and need to be converted
% to variables of Number type before they can be added together

62 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

total = ztrans(a);
c = func2str(total);
% need to convert the answer back into String type to display it
set(handles.answer_staticText,’String’,c);
guidata(hObject, handles);

% hObject handle to ztrans_pushbutton (see GCBO)


% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

231. on 12 Apr 2010 at 5:59 pm 231ravi

xcellent beginner tutorial….thanks for the share

232. on 13 Apr 2010 at 6:55 am 232Pramod

Thanks a lot! was really clear and helpful

233. on 15 Apr 2010 at 1:12 am 233jay

Excellent tutorial for beginners. thankyou.

234. on 21 Apr 2010 at 4:52 am 234Pramod

Is it possible to edit the GUI once it has been closed? How?


Thanks in advance!

235. on 21 Apr 2010 at 9:13 am 235Zane Montgomery

Pramod,

Click ‘Guide’ again and select the tab ‘Open Existing GUI’

236. on 21 Apr 2010 at 12:20 pm 236Pramod

Thanks Zane!

237. on 22 Apr 2010 at 9:33 am 237xaim

Sir,

i want to make a GUI for my project to make a preview of webcam and take a snapshot from the video coming.The
problem that i am facing is that the preview is not clear and the remaining functions are also not working
properly.Kindly help me in this regard.

Xaim.

238. on 22 Apr 2010 at 11:09 pm 238anum

nic demo

239. on 28 Apr 2010 at 9:09 am 239Anonymous

thnx man!

240. on 30 Apr 2010 at 5:09 am 240A Rasmy

thanks alot man!

u really helped me in my grad. project

241. on 01 May 2010 at 5:08 am 241PARI

hey. plz reply fast.

63 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

how can i use assignin and evalin in matlab gui?????????

242. on 02 May 2010 at 7:30 am 242Pramod

What is the actual datatype to which the entered number is converted in str2num function?

243. on 03 May 2010 at 2:21 pm 243Zane Montgomery

Pramod,

str2num takes a ’string’ and converts it to a ‘double’ (usually)

244. on 04 May 2010 at 9:08 am 244rahul

thanx 4 this tutorial..


i wpuld like to generate a gui for a neuarl network trained by me and now to simulate the sresults i would like to
generate gui. we have to provide 5 inputs by user and 3 out put will be given. how can we give out put of a row matrix
into three different cells which we want to provide…
pls help
thanx in advance

245. on 10 May 2010 at 12:02 pm 245Prabhjot

Hello Quan,

I appreciate your efforts.

246. on 13 May 2010 at 5:15 am 246mahdi

dear sir

since i use matlab version 5.3.1, would you please create relevant GUI tutorial, because I think above mentioned
tutoraial is in latest version
thank you indeed

247. on 27 May 2010 at 4:46 am 247Rodrigo

Hello!
First of all, I want to say that I really liked your tutorial; it helped me a lot.
But I want to ask something: how can I set a String of a Static Text with a value that comes from the USB entry?
My problem is to make a GUI to display 4 values (numbers) that comes from the USB into 4 Statics Text (and it needs
to refresh itself). Could you help me?
Thank you!

248. on 30 May 2010 at 12:07 am 248Ashok

Beautiful

249. on 31 May 2010 at 5:27 am 249vinit mittal

i need a gui for solving ode.


if anyone can help me with it, it will be greated appreciated.
or if its already available then , can sumone give me a link to it.

thanking all in advance

250. on 31 May 2010 at 11:58 pm 250Rana Awais iqbal

Sir plz help me. our project are gui calculator by different program for example bisectin, newton, fixed point, matrix
multiplication etc
Sir please help me

64 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

251. on 01 Jun 2010 at 11:27 am 251Rana Awais iqbal

Sir plz help me. our project are gui calculator by different program for example bisectin, newton, fixed point, matrix
multiplication etc
we submitted our project 3june 2010. kindly help us

252. on 01 Jun 2010 at 9:35 pm 252kureti

Hello sir,

Nice basic example.


Thank a lot for sharing with nice step by step procedure

253. on 02 Jun 2010 at 3:05 am 253leswiss

Been looking for such a good tuto for hours !!!!


THANK YOU !!

254. on 02 Jun 2010 at 7:38 am 254miteran

Nice one!

255. on 09 Jun 2010 at 3:15 am 255Stebbi

great tutorial thx

256. on 10 Jun 2010 at 1:02 am 256links for 2010-06-10 « lugar do conhecimento

[...] MATLAB GUI Tutorial – For Beginners | blinkdagger (tags: work, matlab) Deixe um Comentário [...]

257. on 11 Jun 2010 at 10:58 pm 257Krishna

Thanks a lot !!!


I was jumping when I run first GUI

258. on 15 Jun 2010 at 8:18 pm 258subrahmanya

Its nice explanation dear


Thank you

259. on 24 Jun 2010 at 9:21 am 259Saad

welldone and thanks for sharing such a nice thing

260. on 29 Jun 2010 at 8:40 am 260Anonymous

It’s very clear.Thank your!

261. on 05 Jul 2010 at 3:43 am 261Noman Siddiqui

i have to make GUI for my webcam. GUI that recalls my image from C drive. can anyone please give me the coding
reply please on xtreme2610@hotmail.com

262. on 06 Jul 2010 at 12:45 am 262mithchie

where is the source file?

263. on 10 Jul 2010 at 9:55 am 263yunusemre

Hi, i get the following error When i run my function. PLEASE HELP ME! i will be grateful.

>> TestAutoCovarianceCPInt

65 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

??? Reference to non-existent field ‘nobs’.

Error in ==> dataset.isempty at 11


t = (a.nobs == 0) || (a.nvars == 0);

Error in ==> roc at 20


if nargin == 0 | isempty(A)

Error in ==> TestAutoCovarianceCPInt at 115


e=roc(dataset(SCORE{1}’,yTE’),50);

264. on 13 Jul 2010 at 12:12 am 264shehab

nice and clear

265. on 19 Jul 2010 at 10:31 pm 265samin

hi;
i have a question!
how can i open another fig file and run it when i use callback of a pushbutton?when i use winopen(’another file!’),it
just open the form and doesnt run this!what should i do?help me.
please send me an e-mail as soon as possible.
my e-mail:s.arami89@yahoo.com

266. on 24 Jul 2010 at 9:37 am 266shonali

Hey,
Im a Matlab beginner.As i type guide in the command window,i get the following error.
??? Error using ==> copyfile
‘attrib’ is not recognized as an internal or external command,
operable program or batch file.

Error in ==> guidetemplate at 88


copyfile(srcfigfile, targetfigfile, ‘writable’);

Error in ==> guide at 61


filename = guidetemplate;

It would be great if you could help me resolve that.


Thanks.

267. on 04 Aug 2010 at 10:09 am 267Eng_Bandar

very good.

we need some tutorial in how connect webcam by matlab gui.

268. on 16 Aug 2010 at 11:11 pm 268Anay

brilliant !!
but i have a small doubt…
i tried the code

total=str2num(a) + str2num(b)

and i forgot to convert ‘total’ back to string type. but still, the program worked !
why??

269. on 18 Aug 2010 at 1:10 pm 269helmy

hello sir…im a matlab beginner and just doing my final project about comparing fingerprint algorithm using matlab gui.

66 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

i wanna ask how to put these algorithm in matlab gui?


hopefully you can help me …
thanks

270. on 29 Aug 2010 at 4:21 am 270Dr.Ivanobich

Excellent workdone…I really appreciate it. Hope to get more tutorials over here
Awesome.

271. on 03 Sep 2010 at 10:21 pm 271C.K.Dhinakarraj

Can any one explain me about the linking of ANN file to frontend GUI of matlab

272. on 15 Sep 2010 at 5:21 am 272sreenu

hi.thanks a lot for posting this good and simple example gui.thanks a lot.

273. on 30 Sep 2010 at 12:59 pm 273Matlab GUI for Engaged Learning | Freedom University Tutorial Videos

[...] Matlab GUI Interface Tutorial For Beginner form Blinkdagger.com. I used this one to create my first GUI. [...]

274. on 08 Oct 2010 at 5:45 am 274ajeet

Really good tutorial for MATLAB fresher…..i am waiting for next tutorial sheeet…..thanks sir…….

275. on 09 Oct 2010 at 11:17 am 275Mathew

HELP!
I’ve got some strange behavior of MATLAB.
In button callback function I input:

set(handles.estym, 'string', num2str(b));

and if I run my GUI using green “play” button in GUIDE Editor everithing if fine. I see value of ‘b’ in ‘estym’, but if I
open my GUI directly from MATLAB command windows I see error:
??? Attempt to reference field of non-structure array.
I discovered, if is this error ‘handles’ is empty

276. on 17 Oct 2010 at 1:13 am 276Amit

hi. i m a beginner.

i want to link many gui files. How can i do that???


for e.g in the first file, after clicking a button “NEXT”, i must enter to the next file(page).

and so on.

thanks..

277. on 18 Oct 2010 at 6:43 pm 277ls.narith

If I have two push buttons in GUIDE. I just want to write code in the first callback’s button and the second button I
want to call it from the first one. How can I do?

Thanks.

278. on 19 Oct 2010 at 9:54 am 278Matlab GUI实现基于ADPC方法的ABAQUS输入文件和两相子程序的生成 « 亘古之


[...] 为了实现这一目标,我没有采用老哥建议的C#语言,而更加倾向于Matlab。虽然我曾经有过matlab编程经
历,但是Matlab GUI和我还是第一次亲密接触,经过学习发现,Matlab GUI的功能强大,有着所见即所得的开发

67 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

环境,内置的GUI handles整体变量可以在一个GUI figure所对应的所有动作应用函数里面方便调用,而且程序调


试的时候非常方便,这得益于matlab编译系统的简洁明白的特性。这里特别要推荐一个学习Matlab GUI非常赞
的网站:blinkdagger。正是通过学习该网站循序渐进的tutorial才让我在三天内顺利地完成了ADPCgeneratro的开
发。 [...]

279. on 25 Oct 2010 at 8:36 am 279sinan

This is the best tour for GUI I have ever seen. Thanks very very very much.

You are really great

Leave a Reply

Include MATLAB code in your comment by doing the following:

<pre lang="MATLAB">

%insert code here

</pre>

Name

Mail (hidden)

Website

68 of 69 10/26/2010 4:10 PM
MATLAB GUI Tutorial - For Beginners | blinkdagger http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial...

Facebook.com/NokiaLebanon Ads by Google

Ads by Google
Gui Design
MATLAB 7.1
Gui Development
Gui Programming

The MathWorks Blog Ring


Undocumented MATLAB Tips
Data Mining in MATLAB
I want an iPad
Search for:

The End of Blinkdagger? . . . . Possibly


MATLAB - Global Variables
MMM #34 Winner, Sander Land!!!
Monday Math Madness #34: Crossing a Bridge
MATLAB GUI Tutorial - UITABLE Part 2, How To Access Table Data

Copyright ©2010 blinkdagger


Posts RSS Comments RSS

WordPress Theme designed by David Uliana · XHTML · CSS

69 of 69 10/26/2010 4:10 PM

You might also like