Loading in 5 sec....

Pattern recognition lab 8PowerPoint Presentation

Pattern recognition lab 8

- 70 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about ' Pattern recognition lab 8' - nayda-cobb

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

### Pattern recognition lab 8

TA : Nouf Al-Harbi :: [email protected]

Lab objective:

- Dealing with GUI
- Make Bayesian Classifier using GUI

Why use a GUI in MATLAB?

- 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
- It can be extremely difficult and frustrating.

Steps for making Bayesian classifier using GUI

- open up MATLAB
- File New GUI

Final form we should have

- 8 Edit Text components
- 9 Static Text component
- 2 Pushbutton component
- 2 figures

Steps for making Bayesian classifier using GUI

Add in all these components to the GUI by clicking on the icon and placing it onto the grid

Steps for making Bayesian classifier using GUI

- Its time to edit the properties of these components
- Double click one of the components
- You can also, Right-click the component and select property inspector

Steps for making Bayesian classifier using GUI

- The Tag parameter is basically the variable name of this component
- The Stringparameter is the text of this component

Steps for making Bayesian classifier using GUI

- Now, save your GUI under any file name
- When you save this file MATLAB automatically generates two files
- myClassifier.fig file
- contains the graphics of your interface

- myClassifier.mfile
- contains all the code for the GUI

- myClassifier.fig file

Steps for making Bayesian classifier using GUI

- The .m file is where we attach the appropriate code to the callback of each component
- we are primarily concerned only with the callback functions
- You don’t have to worry about any of the other function types

What Is a Callback?

- It is a function that you write and associate with a specific component in the GUI or with the GUI figure itself
- It controls GUI or component behavior by performing some action in response to an event for its component
- The event can be
- a mouse click on a push button
- menu selection
- key press , etc.

- There is a set of callbacks for each component and for the GUI figure itself.
- For more information about callbacks you can visit this interested website
http://www.mathworks.com/help/techdoc/creating_guis/f16-999606.html

Steps for making Bayesian classifier using GUI

- Open up the .m file
- In the MATLAB editor, click on the icon ,which will bring up a list of the functions within the .m
- Select drawBtn_Callback.

Steps for making Bayesian classifier using GUI

- Using handles
- Handles is a structure that contains all components in a figure including figure itself.
- Texts, pushbutton, axes , … etc.
- We can’t access any component without using handles

Steps for making Bayesian classifier using GUI

- There are many important functions :
- Set
- Set a value for the component property

- Get
- Get the value of the component property

- Str2num
- Convert from string to number

- Num2str
- Convert from number to string

- Set

Examples

- To get the value of pw1_text string:
- p1=get(handles.pw1_text,’string’);

- To set 20 to Mu1 string:
- set(handles.Mu1_text,’string’,20);

- Exercise:
- Set a value of Mu1 string to Mu2 string

guidata function

- One of important function in gui
- It updatesthe value of the component and keep that variable in our memory-workspace
- That’s important to be used in other callback functions.
- We can achieve it by doing this:
guidata(h,handles)

- Generally speaking, we need to finish every callback function with it.

Dealing with inputs

- In each text callback we should write these instructions:
handles.m1=get(handles.m1,’string’);

guidata(h,handles);

- Where m1 is a variabe we define to store mean value that the user enterd in m1 text box
- In any callback we can use it as handles.m1

Function classifyBtn_Callback(hObject, eventdata, handles)

- m1=str2num(get(handles.m1,'string'));
- m2=str2num(get(handles.m2,'string'));
- s1=str2num(get(handles.s1,'string'));
- s2=str2num(get(handles.s2,'string'));
- p1=str2num(get(handles.p1,'string'));
- p2=str2num(get(handles.p2,'string'));
- x=str2num(get(handles.pattern,'string'));
- Pxw1=NormalFun(x,m1, s1);
- Pxw2=NormalFun(x,m2, s2);
- Pw1x=Pxw1*p1/((Pxw1*p1)+(Pxw2*p2));
- Pw2x=Pxw2*p2/((Pxw1*p1)+(Pxw2*p2));
- %Now make a decision using the posteriors;
- if (Pw1x > Pw2x)
- rslt = sprintf('%d belongs to w1', x);
- set(handles.result,'string',rslt)
- else
- rslt = sprintf('%d belongs to w2', x);
- set(handles.result,'string',rslt)
- end

- Function DrawBtn_Callback(hObject, eventdata, handles)

Draw button callback

- m1=str2num(get(handles.m1,'string'));
- m2=str2num(get(handles.m2,'string'));
- s1=str2num(get(handles.s1,'string'));
- s2=str2num(get(handles.s2,'string'));
- p1=str2num(get(handles.p1,'string'));
- p2=str2num(get(handles.p2,'string'));
- x=str2num(get(handles.pattern,'string'));
- x1Max=m1+(4*s1); x1Min=m1-(4*s1);
- x2Max=m2+(4*s2); x2Min=m2-(4*s2);
- xMax=max(x1Max,x2Max); xMin=min(x1Min,x2Min);
- x=xMin:0.1:xMax;
- n=length(x); pxw1=zeros(1,n); pxw2=zeros(1,n); pw1x=zeros(1,n); pw2x=zeros(1,n);
- for i=1:n
- pxw1(i)=NormalFun(x(i),m1, s1); pxw2(i)=NormalFun(x(i),m2, s2);
- end
- for i=1:n
- pw1x(i)=pxw1(i)*p1/((pxw1(i)*p1)+(pxw2(i)*p2));
- pw2x(i)=pxw2(i)*p2/((pxw1(i)*p1)+(pxw2(i)*p2));
- end
- axes(handles.axes1);
- plot(x,pw1x,'r-',x,pw2x,'b');
- axes(handles.axes2);
- plot(x,pxw1,'r-',x,pxw2,'b');

Launching the GUI

- There are two ways to launch your GUI
- through the GUIDE editor press the icon on the GUIDE editor

- from the MATLAB command prompt
- type in the name of the GUI at the command prompt
- you don’t need to type the .fig or .m extension

References

- Materials of this lab are prepared using:
- http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial-for-beginners/
- http://www.matrixlab-examples.com/callback-function.html
- http://www.mathworks.com/help/techdoc/creating_guis/f16-999606.html

Download Presentation

Connecting to Server..