MATLAB Second Seminar

1 / 24

# MATLAB Second Seminar - PowerPoint PPT Presentation

MATLAB Second Seminar. Previous 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.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about ' MATLAB Second Seminar' - azizi

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

### MATLABSecond Seminar

Previous 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.

Problem
• 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
Solution

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([\' ==> Temperature in C =\',num2str(TinC)])

disp(\' \')

end

Functions
• Functions describe subprograms
• Take inputs, generate outputs
• Have local variables (invisible in global workspace)
• Core MATLAB (Built-in) Functions
• sin, abs, exp, ...

Can’t be displayed on screen

• MATLAB-supplied M-file Functions
• mean, linspace, …

Ca be displayed on screen

• User-created M-file Functions
Core MATLAB (Built-in) Functions
• Elementary built-in functions
• >> help elfun % a list of these functions
• Special Math functions
• >> 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.

Keyword: function

Function Name (same as file name .m)

Output Argument(s)

Input Argument(s)

MATLAB

Code

Command Line Syntax

• output_value = mean(input_value)
Structure 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;

Multiple Input & Output Arguments

Multiple Input Arguments ( , )

functionr = 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 > tol);

Multiple Output

Arguments [ , ]

function[mean,stdev] = ourstat(x)

% OURSTAT Mean & std. deviation

[m,n] = size(x);

ifm == 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(1:99);
nargin, 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
Workspaces 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.
Tips for using Global Variables
• DON’T USE THEM
• If you absolutely must use them:
• Avoid name conflicts

>>whos global%shows the contents of the global workspace

>>clear global %erases the variable from both local and global workspaces.

>>isglobal()

MATLAB 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

Visual Debugging

Select Workspace

Set Auto-

Breakpoints

Set Breakpoint

Clear Breaks

Step In

Single Step

Continue

Quit Debugging

Example: Visual Debugging (2)
• Editor/Debugger opens the relevant file and identifies the line where the error occurred.

Current

Location

Current Workspace (Function)

Example: Visual Debugging (3)

Error message

Debug Mode

Some 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
Problem
• 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.
Solution

functionTinC=temp2(TinF)

TinF = input(\'Temperature in F:\'); % get input

if nargin==0 % if there is no input

disp(\'no temparture was entered\');

TinC=nan;

else

TinC = 5*(TinF - 32)/9; % conversion

disp(\' \')

disp([\' ==> Temperature in C =\',num2str(TinC)])

disp(\' \')

end

MATLAB Input

• 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”
What 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:

>> guide

OR:

Push buttons

axes

Static text

GUIDE 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

Using 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

Programming 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:
Handles structure
• Save the objects handles: handles.objectname
• Save global data – can be used outside the function.