Introduction to Matlab

Download Report

Transcript Introduction to Matlab

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 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)]) end disp( ' ' )

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 sin exp abs round % Sine.

% Exponential.

% Absolute value. % Round towards nearest integer.

Special Math functions

• >>

help specfun lcm cart2sph % Least common multiple.

% Transform Cartesian to spherical % coordinates.

Special functions - toolboxes

• Each toolbox has a list of special functions that you can use

Structure of a Function M-file

Keyword: function Function Name (same as file name .m) Output Argument(s) Input Argument(s) Online Help MATLAB Code 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;

»

output_value = mean(input_value) Command Line Syntax

Multiple Input & Output Arguments

function

r = ourrank(X,tol)

% OURRANK Rank of a matrix

s = svd(X);

if end

(nargin == 1) tol = max(size(X))*s(1)*eps; r = sum(s > tol); function Multiple Input Arguments ( , ) Multiple Output Arguments [ , ] [mean,stdev] = ourstat(x)

% OURSTAT Mean & std. deviation

[m,n] = size(x); if m == 1 end m = n; 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

workspace %shows the contents of the global

>>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 Access to Function’s Workspace

Some Useful MATLAB commands

• what • dir • ls • type test • delete test • cd a: • chdir a: • pwd • which test • why List all m-files in current directory List all files in current directory Same as dir Display test.m in command window Delete test.m

Change directory to a: Same as cd Show current directory Display current directory path to test.m

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

function TinC=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)]) end disp( ' ' )

MATLAB 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”

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

Starting GUIDE

:

>> guide

OR: Push buttons Static text Pop-up menu

GUIDE Tools - The Layout Editor

• In the Quick Start dialog, select the

Blank GUI (Default)

template Component panel Drag to resize Layout area • 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

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. Property Inspector Activate GUI

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.

• Example: popup menu: • Value – user choice of the popup menu