Code covered by the BSD License  

Highlights from
41 Complete GUI Examples

  • GUI_1() Demonstrate how to delete an entry from a uicontrol string.
  • GUI_10() Demonstrate how to make an image visible or invisible by pushbutton.
  • GUI_11()
  • GUI_12() Demonstrate how to control the mouse pointer from a GUI.
  • GUI_13() Demonstrate how to display & change a slider's position with an edit box.
  • GUI_14() Demonstrate colored text in a listbox, & how extract user's choice.
  • GUI_15() Demonstrate an edit text which has copyable but unchangeable text.
  • GUI_16() Demonstrate display & change a slider's position & limits with edit boxes
  • GUI_17() Demonstrate how to have a running clock in a GUI, and timer use.
  • GUI_18() Demonstrate the use of the buttondownfcn for an axes.
  • GUI_19() Demonstrate how to keep track of the number of times an action is taken
  • GUI_2() Demonstrate how to add a new entry to a uicontrol string.
  • GUI_20() Demonstrate how to get the chosen string from a popup.
  • GUI_21() Demonstrate how to get selection from a popup to an edit box & vis versa.
  • GUI_22() Demonstrate how to get selection from a popup to an edit box & vis versa.
  • GUI_23() Demonstrate finding which figure was current before callback execution.
  • GUI_24() Demonstrate how to get data from one GUI to another (data passing).
  • GUI_25() Demonstrate how to make an image loader.
  • GUI_26() Demonstrate how to make the choices in several popups mutually exclusive.
  • GUI_27() Demonstrate how to display the current location of the mouse in an axes.
  • GUI_28() Demonstrate uicontextmenu for an axes click.
  • GUI_29() Demonstrate the use of a uicontrol to manipulate an axes from a GUI,
  • GUI_3() Demonstrate how to hide a uicontrol from the user.
  • GUI_30() Same as GUI_29, except uses callback strings.
  • GUI_31() Demonstrate multiple uicontrol manipulations based on user choices.
  • GUI_32(str) Demonstrate how to get data from a GUI into the base workspace without
  • GUI_33() Demonstrate how to export data with context menu.
  • GUI_34() Demonstrate how to make a simple printscreen GUI. Note that this does
  • GUI_35() Demonstrate how to use toggle buttons to mimic tabbed panels.
  • GUI_36() Demonstrate how to make a custom dialog box which returns information.
  • GUI_37(str,time_out) Demonstrate how to make a password editbox, and nested function
  • GUI_38() Demonstrate bringing the focus to the figure after callback using JAVA.
  • GUI_39() Demonstrate use of nested functions for callbacks and other functions.
  • GUI_4() Demonstrate how to make a multiline editbox.
  • GUI_40() Demonstrate how to use an image as a background of a GUI.
  • GUI_41() Demonstrate how to save and load the state of a GUI system.
  • GUI_5() Demonstrate how to use a pushbutton to delete bits of string and how to
  • GUI_6() Demonstrate how to update one uicontrol with data from others.
  • GUI_7() Demonstrate how to store choice counters for multiple user choices.
  • GUI_8() Demonstrate how to tell which button in a uibuttongroup is selected.
  • GUI_9() Demonstrate one way to let the user know a process is running.
  • previewGUIs() This is a helper GUI which lets the user quickly view all of the example
  • contents.mSyntax Considerations for reading the M-Code:
  • View all files

4.9759

5.0 | 87 ratings Rate this file 676 Downloads (last 30 days) File Size: 108 KB File ID: #24861

41 Complete GUI Examples

by

 

27 Jul 2009 (Updated )

41 working GUIs to read and learn.

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

| Watch this File

File Information
Description

This is a collection of GUIs meant to serve either to answer specific questions about writing GUIs or as a teaching tool to aid in learning how to write MATLAB GUIs without GUIDE. Many of these are inspired directly from the newsgroup.
 
The questions/files are written in approximate order of complexity, so intermediate users may want to skip the first several files.
The questions answered include:

1.How do I manipulate the strings in a uicontrol? GUI_1, 2, 4, 5, 13, 14, 15, 20, 21, 22, 37
2.How do make a uicontrol invisible/visible? GUI_3, 35 (See also GUI_10 for images)
3.How do I make a multi-line edit box? GUI_4
4.How can I initialize an editbox so that the cursor is blinking at startup?  GUI_4, 24, 37
5.How can I let the user of my GUI know his actions are futile (or producing no results)? GUI_5
6.How can I tell which uicontrol is selected e.g., radiobuttons? GUI_6, 8
7.How do I tell how many times a uicontrol has been activated? GUI_7, 19, 28, 32, 33
8.How do I tell which button in a buttongroup is selected? GUI_8
9.How do I let the user know a process is running in the background? GUI_9
10.How can I set an image visible/invisible? GUI_10
11.How can I use a GUI to exit a FOR loop? GUI_11
12.How can I control the mouse pointer with a GUI? GUI_12
13.How do I access the value (current position) of a slider? GUI_13, 16
14.How do I use different colored strings in a listbox? GUI_14
15.What is the difference between 'listboxtop' and 'value' in a listbox? GUI_14
16.How do I make text that can be copied but not changed? GUI_15
17.How can I allow the user of my GUI to set the range of a slider? GUI_16
18.How can I display a digital clock in my GUI? GUI_17
19.How can I use a timer in a GUI? GUI_17
20.How do I use the buttondownfcn on an axes object? GUI_18, 28
21.How do I make a callback talk to another callback? GUI_19
22.How can I get the string from a popup or listbox? GUI_14, 20, 21, 22, 31, 32, 33
23.How can I set the string in a popup or listbox? GUI_21, 22
24.How can I add to the string in a popup or listbox? GUI_22
25.How do I tell which figure/axes was current before my callback executed? GUI_23
26.How do I get data from another GUI? GUI_24
27.How do I make a GUI to open image files only? GUI_25
28.How can I make popup choices mutually exclusive? GUI_26
29.How can I show the current pointer location in axes coordinates? GUI_27
30.How can I use uicontextmenus? GUI_28, 33, 39
31.How do I make my GUI control an axes in another figure? GUI_29, 30
32.What are callback strings? GUI_30
33.How can I make it so that when one of the figures closes, they all close? GUI_24, 29, 30, 41
34.How do I make several uicontrols interact in a more complicated GUI? GUI_31, 32, 33, 41
35.How do I get data from a GUI to the base workspace? GUI_25, 32, 33, 36
36.How can I use a GUI to take a screenshot of my desktop? GUI_34
37.How do I make toggle buttons act like tabbed-panels? GUI_35
38.How do I make a custom dialog box which returns a string to the base workspace? GUI_36
39.How can I make a password editbox that has the ***** symbols? GUI_37
40.How can I use nested function as callbacks? GUI_11, 17, 34, 36, 37, 39, 40, 41.
41.How can I use uiwait in a GUI? GUI_11, 34, 36, 37
42.How do I use JAVA in my GUI? GUI_38
43.How do I force the figure to maintain focus between uicontrol activations? GUI_38
44.How do I save an axes as an image? GUI_39
45.How can I make a simple drawing program? GUI_39
46.How can I set a button's background to match an image? GUI_40
47.How can I save the state of a system of GUIs to use later? GUI_41

I am open to hearing any suggestion as to other questions which could be covered in the collection. Such suggestions need not be basic. Please read the pdf file prior to use. Also the contents.m file contains brief descriptions of each GUI.

Please email me if an error is found, either in the documentation or coding. Thanks.

Acknowledgements

This file inspired Matlab To Google Spreadsheets, Stack Slider, Virtual Painting, and Menu N.

MATLAB release MATLAB 7.5 (R2007b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (113)
17 Oct 2014 Khanh  
30 Jul 2014 Mustafa  
19 Jun 2014 CEC Landran  
06 Jun 2014 piyush dugar  
14 May 2014 Gil Bachar

Great submission, helps a lot making my own GUI

09 May 2014 Jason Oh

super thanks, Matt

13 Mar 2014 Salaheddin Hosseinzadeh

Hi

I was wondering if you covered some topics that I'm looking for in your precious exampls.

1- How to make tabs for GUI, like new IE, firefox and ... they all have tabs on the top.

2- How to open a new GUI from within a GUI and pass the variables of the first GUI to second. Sometimes I can't squeez all the buttons and menues to keep te in the same form, I am thinking of makig ore commercial! lol

Specificly I want to know how to do these things when I'm using the GUIDE not writing the whole GUI with codes!

Many regards and thanks for sharing your experience and knwoledge for free ;)

20 Feb 2014 francesco

matlab central confirms the choice upon other sw.

26 Dec 2013 Mr Smart  
20 Dec 2013 Mateo Sundquist

Very practical, well-thought out examples. Thanks!

12 Nov 2013 vladimir avalos

excellent examples!!!

06 Sep 2013 as  
26 Aug 2013 Brad

Super job and well thought out.

Very practical with numerous possible applications!!

26 Aug 2013 Zoltán Csáti

I found a bug in GUI_21. If I write 't' into the editbox (since two and three contains 't'), it cannot select which number should be displayed on the popup-menu. It is not a real bug, since it only produces a warning and can be fixed throuhg the GUI.
Anyway, this collection of GUIs is very useful.

21 Jul 2013 Jonathan Lister

Fig = figure('Name','Matt'); % LOL!!!

17 Jul 2013 Iman Ansari  
12 Jul 2013 Antonio Fuentes

Amazingly useful. Such a great work.

22 May 2013 Manini

How to place an image in the axes without brosing the image. By giving some path or filename ?

13 May 2013 bidisha

Awesome start for a beginner

01 May 2013 Rebecca Carter  
25 Apr 2013 mat

thanks for sharing these!! very helpful

11 Apr 2013 Emad Ravari  
04 Apr 2013 Dilraj

This very helpful beginers

13 Mar 2013 Alex

Awesome! Much appreciation Matt!

28 Feb 2013 Alberto  
27 Feb 2013 Dee Chen

Really helpful, awesome!

31 Jan 2013 Shahab

thanks Matt

27 Nov 2012 Shamir Alavi  
30 Oct 2012 Lee Smith

Thanks Matt, this is very useful.

I have a syntax question about callbacks.
Most of your GUIs use:
'callback',{@pb_call,S}); %% GUI_1
although the same result comes from
set(S.ch,'callback',{@ch_call,S})
Can you steer me to documention that would help me understand more about the options? Starting with the necessity or use of a cell with attribute?

Thanks in advance

23 Oct 2012 David

Great, very useful, thanks Matt.

22 Sep 2012 Gagliardi

I can not download these file
can someone send it to me by email ?

13 Jul 2012 NZN NZN

Excellent, great job. You are very generous. Thank you very much.

28 Jun 2012 Abhishek Ghosh

your humble effort made my project, what more can i say, a bible for matlab gui's.

14 Jun 2012 Marco

how can I divide in many m-file my GUI? I want build a main m-file that call other m-file one for one figure. this to limit the length of m flie.
this using structure date learn by Mat GUI exemples.

Thanks much!

13 May 2012 aina mansor

can anyone help me to get a matlab simulink for DIGITAL HEARING AID

23 Apr 2012 PRIYANK SHAH

hey Matt Fig,
can u help me?

i want to make 1 gui which has 1 start button and 1 stop button. by pressing 'start' , it generates or play sound and after pressing 'stop' , it stops sound..
and another GUI has 'start' and 'stop' buttons, by pressing start button 1 'while loop' is run and after pressing stop 'while loop' is ended.

17 Apr 2012 Marco

excellent job
thanks from Italy

27 Mar 2012 wildan

Thank you very much, this post very usefull

06 Mar 2012 Andreas Bonelli  
03 Feb 2012 Sriharsha

Hi, i have two gui windows. i want to a push button in first GUI , such that when i click this push button, i want to make a panel visible in second GUI, which was initially set to invisible.

Can any one help me to do this?

31 Jan 2012 Julian

Awesome. Thanks Matt!

23 Jan 2012 Yonathan

I work with the GUIDE tool
I need to display a inputdlg before I close my GUI...

1.Where I need to define
the closeRequestFcn
set(gcf,'CloseRequestFcn',@my_closefcn)?

2. Where to write the callback?
function my_closereq(src,evnt)
....
.....
end

16 Jan 2012 TAB  
03 Nov 2011 pavel  
21 Oct 2011 Sourin  
17 Oct 2011 Mr Smart  
05 Aug 2011 rohit  
04 Aug 2011 Nik F  
27 May 2011 nsbd  
16 Apr 2011 josh andrew  
26 Mar 2011 Mr Smart

Nice Examples

15 Mar 2011 quadro1327  
01 Mar 2011 Matt Fig

To fremond,

What do you mean, "open" the file? For editing? Just type:

>> edit GUI_1

If you have other problems, please email me instead of using the ratings area.

01 Mar 2011 fremond khoo

can u teach me how to open the file?..i am currently using matlab 7.0 and while i was opening the file..this error comes along while i try to open GUI 1

??? Error: File: D:\toolbox\matlab\uitools\uiopen.m Line: 179 Column: 1
Illegal use of reserved keyword "catch".

is it compatibility problem?..can someone enlighten me?..please teach me how to open an m-file correctly too if you are so kind..because im having the same prob while opening the other m-file..thanks so much

23 Feb 2011 K B

Super!

27 Jan 2011 Sean de

This bundle is really helpful to have kicking around for the occasional GUI-related question. Thanks Matt!

27 Jan 2011 Sean de  
12 Jan 2011 John D'Errico  
06 Jan 2011 Beautyegg Skylake  
21 Dec 2010 Sisi Ma  
14 Sep 2010 Ali

it will be very useful to me
thanks so much

18 Aug 2010 Camille Couzi

HI!!!!
One question about GUI_27: How can I get the same results, knowing that my figure of GUI, and all buttons and panels are deinfed in units normalized?
Thanks you very much!!!

13 Jul 2010 Luis Lacerda

hello, i have read the examples but i still can´t answer my question...how can you make a GUI subplot something in another GUI? Not just plot, because what i am plotting has parameters altered by the called GUI..

thanks

12 Jul 2010 Erdal Bizkevelci  
30 Jun 2010 Grunde

Hi,
excellent examples.

GUIs are excellent case for object oriented code. It would be great to see an example of thet.

14 Jun 2010 Christian

Thanks for this - very well written. Just need to find the time to practice but thanks for sharing this with us!

07 Jun 2010 Cesar Chillon

Many thanks, great work

05 Jun 2010 Mark

GUI_37 in the above file works perfectly in MATLAB 2007a. It opens a GUI where a password needs to be entered. The characters are displayed as *****. In MATLAB 2008b, a character is turned into an asterisk very slow (first, the actual character is showed) and then the cursor is set to the left of the edit text instead of to the right of the asterisk.

Can anyone tell me if this is a bug in MATLAB 2008b, or if it is an error in the code from the File Exchange?

05 Jun 2010 Mark

Great files by the way, they have been very useful!

23 May 2010 Examples Learn By

Thank you for sharing, it is really useful
http://learnbyexamples.org/category/matlab

30 Apr 2010 marwen

I will be thankful for you until my life time,really you saved me with your great works...

29 Apr 2010 Niks Nike

Excellent work, really very helpful to us..

Thank you Matt Fig.

07 Mar 2010 Husam Aldahiyat  
04 Mar 2010 Matt Fig

Lorenzo and Jie,
There are many ways to do the same thing in MATLAB! The approach I would have taken in solving the S.E. for GUI_2 involves adding only one line of code, and no call to PAUSE. Feel free to email me if you have more questions.

02 Mar 2010 Lorenzo Guerrasio

sure an excellent job.
Like jie zhang, I also spent sometime realizing that a pause was necessery in your suggested exercise for GUI 2. Is it planned a "spoiler" for excercise?
Thanks!

02 Mar 2010 Muhammad Bashir

Hej,

I have made Gui for excel data ploting in Matlab. I did it using the video of Mr Doug (http://blogs.mathworks.com/pick/2007/08/13/video-series-reading-excel-data-into-matlab-with-a-gui/). The gui works fine but the command wndow gives following error.

mainGui>pushbuttonLoadXLS_Callback at 130
setPopupString(handles.popupmenuX,eventdata, handles)
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> mainGui at 42
gui_mainfcn(gui_State, varargin{:});
??? Error while evaluating uicontrol Callback>

The gui i m using is:

<handles.fileName=uigetfile('*.xls')
guidata(hObject,handles)
setPopupString(handles.popupmenuX,eventdata, handles)
setPopupString(handles.popupmenuY,eventdata, handles)
set(handles.popmenuX,'callback','mainGui(''updatedAxes'',gcbo,[],guidata(gcbo))')
set(handles.popmenuY,'callback','mainGui(''updatedAxes'',gcbo,[],guidata(gcbo))')
function setPopupmenuString(hObject, eventdata, handles)

fileName=handles.fileName;
[numbers, colNames]=xlsread(fileName);
set(hObject,'string',colNames);

function [x y] = readExcelColumns(fileName, xColNum, yColNum)

a = xlsread(fileName);

x=a(:, xColNum); % x-axis values containing all the rows and column #
y=a(:, yColNum); % y-axis values containing all the rows and coumn #

function updateAxes(hObject, eventdata, handles)

xColNum = get(handles.popmenuX, 'value');
yColNum = get(handles.popmenuY, 'value');
fileName= handles.fileName;

[x y] = readExcelColumns(fileName, xColNum, yColNum)

plot(handles.axes1,x,y)>

15 Feb 2010 Andrew Newell

Something went wrong with my previous submissions, so I am going to start from the beginning. This is a terrific resource, and the preview GUI makes it very easy to browse. However, there were a few minor problems (on a Mac, at least):

A few GUIs (6, 8, 26) had truncated button labels.

In GUI 26, "alfa" should be "alpha".

The documentation for GUI 12 says that nothing happens when it is run on a Mac. Actually, I get the following error messages:

??? Undefined function or method 'pb_call' for input arguments of type 'struct'.

??? Error while evaluating uicontrol Callback

(This was easily fixed by inserting a function pb_call that closes the window.)

Finally, in GUI 40, Restore doesn't always restore all the button colors if more than one button has been pressed.

I initially gave this package a 4 rating because of these minor problems, but it really deserves a 5.

15 Feb 2010 Andrew Newell

Two corrections from the previous post: I realized that all the buttons in Gui 40 did have an effect - I wasn't looking closely enough or clicking repeatedly. However, Restore doesn't always restore all the button colors.

Also, I changed my mind and gave it a 5 rating.

15 Feb 2010 Andrew Newell  
07 Feb 2010 Jie Zhang

GUI_2
When working on your suggested exercise, it took me quite a while to realize should put "pause(0.01)" in the KeyPressFcn_callback, which gives time for updating, to avoid possible inconsistency between the string actually in the edit box and addstr. Maybe mention this in the tutorial.
Good job!

07 Feb 2010 Jie Zhang

Thanks!

02 Feb 2010 Aurelien Queffurust

I ran alll the GUIS under Windows with MATLAB R2009b
Wow , this submission is a great idea.
M-files are well documented , your GUIs are both easy to understand and to use.
Suggested exercise is also a good idea.

My favorites: GUI_12 , I love fun !
GUI_27 which is a nice feature to display current location of the mouse
GUI_35 with the fake tabs
GUI_39 how to make "Paint" inside MATLAB!

Just one remark about GUI_22
if you enter in the edit box 'one129' then 'on' the popup disappears.

Good work!

08 Jan 2010 Nathan Greco  
08 Jan 2010 Daniel

very useful. A lot of things that are vaguely refered to in the documentations got much clearer to me after going through your examples. Thanks!

28 Dec 2009 Sermed

Great Job Matt
I have a small question....
Do you know whether it is possible to play a Wav.file in GUI and at the same time be able to stop it when ever you want?

I've tried using "audioplayer" but I faced two problems:
1- The Wav. file ran for only a second, and I used a pause to solve the problem [not a smart solution anyway]

2- I could stop the Wav.file using "stop(player)".. as I have a problem in connecting the two push_buttons [start and stop]

Do you have any tips, suggestions?
Thanks in advnace and Happy new year
Sermed

16 Dec 2009 Brian

Excellent example files.

Used them to learn how to structure my Matlab code and build a GUI.

Thanks a million.

03 Dec 2009 Faith

Thank you very much!

27 Nov 2009 ??

thanks,this really helps me a lot!I'll keep learning it!

16 Nov 2009 Damien Altzheim

Awesome!! Just what I was looking for.

13 Nov 2009 Rachel Laughs

Okay wow. I know I already posted feedback, but this set of examples is so amazing as a tutorial that I had to come back and say that every beginner should study this entire package. This has to be the best file I've found all year, hands down. Thank you for providing this!!

09 Nov 2009 Rachel Laughs

What an amazing collection. Thank you so much for this!

Is there an available "answer guide" for the suggested exercises you have listed in the files? I am sadly already stuck on the second one and don't want to move on until I understand it

03 Nov 2009 Ahsan Chaudhry

Awesome.... You made my day!!! I was struggling with gui... thanks a lot...

26 Oct 2009 Ashwini

In GUI_32, if i press the delete button(key), it does not delete the next character instead it will consider it as a character and adds to the existing string

26 Oct 2009 Krishna Lalith

Excellent. Great Job.

23 Oct 2009 Ashwini  
22 Oct 2009 Alain  
29 Sep 2009 Herve  
11 Sep 2009 vivian Fang

These are really helpful. Thank you very much!

07 Sep 2009 Matt Fig

Cyberfrog,
GUI_34 has a custom menubar. None of the GUIs in this collection are programmed with GUIDE. Please email me if you have more questions.

06 Sep 2009 Matt Fig

Hello CyberFrog,
I am not sure what you mean by a "menu title" in GUI_25. There isn't supposed to be a menubar, if that is what you mean. I am using 2007b, and everything looks like it should here.

No *.fig file is generated because these are M-file GUIs. GUIDE works by generating two files, an M-File which has the code, and a figure file which has the graphics. These are simply two different ways of doing GUIs in MATLAB. I much prefer to write my GUIs without GUIDE for many reasons, only one of which is that I need to keep track of only one file!

This collection, as is stated in the description, is meant to help people write GUIs without using GUIDE.

13 Aug 2009 Matt Fig

Tanguy,
You are correct. I didn't mention resizable GUIs because I make all of my own GUIs non-resizable. Is there something you have in mind in particular? If so email me with your suggestion, and I may include it in the next update. Thanks.

13 Aug 2009 Tanguy

Absolutely Superb !!

Thanks for such a didactic, well commented set of example. The exercises are a great idea too.

One thing you never touched though, is the resizing of the GUIs. Was that intentional ?

11 Aug 2009 Ahmed  
11 Aug 2009 creek

thank you for understanding, and this is a great set and deserve a 5star for its completeness.

11 Aug 2009 Luigi Giaccari  
09 Aug 2009 Arnaud Thabot  
05 Aug 2009 Vishakha Bhagat  
30 Jul 2009 manoj singh

awesome work really very helpful

29 Jul 2009 Darren Rowland

A stellar FEX contribution. Must read material
for any GUI developer.

28 Jul 2009 Matt Fig

Thanks someone,
BUG! I should be using listboxtop, not value. Thanks, I will update that too.
Also, the suggestions for added exercises are coming into my email. Keep them coming! Any other GUI suggestions are welcome, simple or complex.

28 Jul 2009 someone

A VERY useful submision for all ages of programmers.

In GUI_12, I have to actually click on the the "color" to get the "print choice" button to work properly. Otherwise the last color "selected" is printed (not current displayed color).
Bug or feature?

A (very minor) typo in GUI_24 on line 23:
% No make a simple plot.
should be:
% Now make a simple plot.

This submission could easlily become the MATLAB GUI FAQ!
Great job Matt!!!

28 Jul 2009 Matt Fig

I like the contents.m idea, and I might as well since a typo has already been found.

In the pdf I refer to a comment in GUI_30. I should have put GUI_32. File will be updated.

28 Jul 2009 us

this first class ML senior has offered an enormous amount of time to create this exhaustive suite of working and highly educational GUI examples to our community...
both novices, in particular, as well as more advanced users will find a lot of good stuff in those exemplary functions...
this submission certainly will find its way into many CSSM threads as a hint for solutions as well as good programming practice...

altogether, hats off not only to a ML cognoscente but also to a teacher who clearly seems to be fond of people 'doing' ML...

us

ps: matt, what about a small CONTENTS.M, which would be easier than the (nice) PDF you proved (just a pedestrian thought)...

Updates
29 Jul 2009

Fixed typos, added a contents.m file.

04 Aug 2009

Added 3 GUIs, expanded suggested exercises.

10 Aug 2009

User suggestions and correction have been incorporated.

27 Oct 2009

Fixed typos and inconsistencies due to user feedback.

27 Jan 2010

6 more examples added. Also an HTML version of contents is included.

Contact us