Title: MATLAB Second Seminar
1MATLABSecond Seminar
2Previous lesson
- Last lesson We learnt how to
- Interact with MATLAB in the MATLAB command window
by typing commands at the command prompt. - Define and use variables.
- Plot graphs
It would be nice if you didn't have to manually
type these commands at the command prompt
whenever you want to use them.
3Problem
- Write a script that asks for a temperature (in
degrees Fahrenheit) - computes the equivalent temperature in degrees
Celcius. - The script should keep running until no number is
provided to convert. - use isempty
4Solution
- while 1 use of an infinite loop
- TinF input('Temperature in F ') get input
- if isempty(TinF) how to get out
- break
- end
- TinC 5(TinF - 32)/9 conversion
- disp(' ')
- disp(' gt Temperature in C ',num2str(TinC))
- disp(' ')
- end
5Functions
- Functions describe subprograms
- Take inputs, generate outputs
- Have local variables (invisible in global
workspace) - Core MATLAB (Built-in) Functions
- sin, abs, exp, ...
- Cant be displayed on screen
- MATLAB-supplied M-file Functions
- mean, linspace,
- Ca be displayed on screen
- User-created M-file Functions
6Core MATLAB (Built-in) Functions
- Elementary built-in functions
- gtgt help elfun a list of these functions
- Â Â Â
- Special Math functions
- gtgt help specfunÂ
- Special functions - toolboxes
- Each toolbox has a list of special functions that
you can use
sin        Sine. exp        Exponential.
abs        Absolute value. round     Â
Round towards nearest integer.
lcm        Least common multiple. cart2sph  Â
Transform Cartesian to spherical
coordinates.
7Structure of a Function M-file
function y mean(x) MEAN Average or mean
value. For vectors, MEAN(x) returns the mean
value. For matrices, MEAN(x) is a row vector
containing the mean value of each column. m,n
size(x) if m 1 m n end y sum(x)/m
8Multiple Input Output Arguments
Multiple Input Arguments ( , )
- function r ourrank(X,tol)
- OURRANK Rank of a matrix
- s svd(X)
- if (nargin 1)
- tol max(size(X))s(1)eps
- end
- r sum(s gt tol)
Multiple Output Arguments ,
function mean,stdev ourstat(x) OURSTAT Mean
std. deviation m,n size(x) if m 1 m
n end mean sum(x)/m stdev sqrt(sum(x.2)/m
mean.2)
- RANK ourrank(rand(5),0.1)
- MEAN,STDEV ourstat(199)
9nargin, nargout, nargchk
- nargin number of input arguments
- - Many of Matlab functions can be run with
different number of input variables. - nargout number of output arguments
- - efficiency
- nargchk check if number of input arguments is
between some low and high values -
10Workspaces in MATLAB
- MATLAB (or Base) Workspace
- For command line and script file variables.
- Function Workspaces
- Each function has its own workspace for local
variables. - Name of Input/output variables can be either
equal or different then the variable name in the
calling workspace. - Communicate to Function Workspace via inputs
outputs. - Global Workspace
- Global variables can be shared by multiple
workspaces. - (Must be initialized in all relevant workspaces.)
- Initialize global variables in all relevant
workspaces - global variable_name
- Initialize global variables in the source
workspace before referring to them from other
workspaces.
11Tips for using Global Variables
- DONT USE THEM
- If you absolutely must use them
- Avoid name conflicts
- gtgtwhos global shows the contents of the global
workspace - gtgtclear global erases the variable from both
local and global workspaces. - gtgtisglobal()
12MATLAB Calling Priority
- High
- variable
- built-in function
- subfunction
- private function
- MEX-file
- P-file
- M-file
- Low
cos'This string.' cos(8) ans r clear
cos cos(8) ans -0.1455
13Visual Debugging
Select Workspace Set Auto- Breakpoints
Set Breakpoint Clear Breaks Step In Single
Step Continue Quit Debugging
14Example Visual Debugging (2)
- Editor/Debugger opens the relevant file and
identifies the line where the error occurred.
Current Location
Current Workspace (Function)
15Example Visual Debugging (3)
Error message
Access to Functions Workspace
Debug Mode
16Some Useful MATLAB commands
- what List all m-files in current directory
- dir List all files in current directory
- ls Same as dir
- type test Display test.m in command window
- delete test Delete test.m
- cd a Change directory to a
- chdir a Same as cd
- pwd Show current directory
- which test Display current directory path to
- test.m
- why In case you ever needed a reason
17Problem
- Write a function that asks for a temperature (in
degrees Fahrenheit) - computes the equivalent temperature in degrees
Celcius. - The function should give an error massage in case
no number is provided to convert. - use nargin.
18Solution
- function TinCtemp2(TinF)
- TinF input('Temperature in F ') get input
- if nargin0 if there is no input
- disp('no temparture was entered')
- TinCnan
- else
- TinC 5(TinF - 32)/9 conversion
- disp(' ')
- disp(' gt Temperature in C ',num2str(TinC))
- disp(' ')
- end
19MATLAB Input
- To read files in
- if the file is an ascii table, use load
- if the file is ascii but not a table, file I/O
needs fopen and fclose - Reading in data from file using fopen depends on
type of data (binary or text) - Default data type is binary
20What Is GUIDE?
- Graphical User Interface Design Environment
- provides a set of tools for creating graphical
user interfaces (GUIs). - GUIDE automatically generates an M-file that
controls how the GUI operates. - Starting GUIDE
- gtgt guide
- OR
Push buttons
axes
Static text
Pop-up menu
21GUIDE Tools - The Layout Editor
- In the Quick Start dialog, select the Blank GUI
(Default) template - Display names of components File
preferences Show names in component
palette - Lay out your GUI by dragging components
- (panels, push buttons, pop-up menus, or axes)
- from the component palette, into the layout area
Component panel
Drag to resize
Layout area
22Using the Property Inspector
- Labeling the Buttons
- Select Property Inspector from the View menu.
- Select button by clicking it.
- Fill the name in the String field.
Activate GUI
Property Inspector
23Programming a GUI
- Callbacks are functions that execute in response
to some action by the user. - A typical action is clicking a push button.
- You program the GUI by coding one or more
callbacks for each of its components. - A GUI's callbacks are found in an M-file that
GUIDE generates automatically. - Callback template for a push button
24Handles structure
- Save the objects handles handles.objectname
- Save global data can be used outside the
function. - Example popup menu
- Value user choice of the popup menu