Pattern recognition lab 8
This presentation is the property of its rightful owner.
Sponsored Links
1 / 24

Pattern recognition lab 8 PowerPoint PPT Presentation


  • 50 Views
  • Uploaded on
  • Presentation posted in: General

Pattern recognition lab 8. TA : Nouf Al-Harbi :: [email protected] Lab objective:. Dealing with GUI Make Bayesian Classifier using GUI. Steps for making Bayesian classifier using GUI. Why use a GUI in MATLAB?. it makes things simple for the end-users of the program

Download Presentation

Pattern recognition lab 8

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

Pattern recognition lab 8

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


Lab objective

Lab objective:

  • Dealing with GUI

    • Make Bayesian Classifier using GUI


Steps for making bayesian classifier using gui

Steps for making Bayesian classifier using GUI


Why use a gui in matlab

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 gui1

Steps for making Bayesian classifier using GUI

  • open up MATLAB

  • File  New  GUI


Final form we should have

Final form we should have

  • 8 Edit Text components

  • 9 Static Text component

  • 2 Pushbutton component

  • 2 figures


Steps for making bayesian classifier using gui2

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 gui3

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 gui4

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 gui5

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


Steps for making bayesian classifier using gui6

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

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 gui7

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 gui8

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 gui9

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


Examples

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

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 wit h inputs

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


Pattern recognition lab 8

Classify button callback

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


Pattern recognition lab 8

  • 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

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

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


  • Login