Programming in MATLAB

Preview:

DESCRIPTION

Programming in MATLAB. Week 14 – 4/28/09. Kate Musgrave kate@atmos.colostate.edu. Week 13: T 4/21 Intro to MATLAB MATLAB GUI Variables Operations Week 14: T 4/28 Functions and scripts Programming style Comments Flow control File I/O. Week 15: T 5/5 Graphics Plot types - PowerPoint PPT Presentation

Citation preview

Programming in MATLAB

Week 14 – 4/28/09

Kate Musgrave

kate@atmos.colostate.edu

Syllabus

• Week 13: T 4/21– Intro to MATLAB– MATLAB GUI– Variables– Operations

• Week 14: T 4/28– Functions and scripts– Programming style– Comments– Flow control– File I/O

• Week 15: T 5/5– Graphics– Plot types– Figure window– Figure properties– Figures: special topics

• Week 16: T 5/12– MATLAB toolboxes– Statistics– Signal processing– Special topics

A brief discussion of matrices

• As mentioned previously, MATLAB is optimized for matrices

• MATLAB regards all variables as matrices– Scalars are 1x1 matrices– Vectors are 1xn or nx1 matrices– 2D matrices are the default, more than 2D are

considered multidimensional arrays (nxmxlx…)

• The class of the matrix is determined by the data type stored within

A brief discussion of matrices

A brief discussion of matrices

This is one of the many demos available in MATLAB, which demonstrates basic matrix manipulation.

Files used in MATLAB

• .m files– Both functions and scripts are stored in .m files

• .mat files– The MATLAB workspace (or specific variables)

can be saved in .mat files– These files are easy to save and load, and

MATLAB accessing them is very efficient

• .fig files (next week)– Plots can be saved in .fig files, and then the

figure can be edited without reloading data

.m files• Code can be saved in .m files and run in

the command window – exact implementation depends on whether the code is a function or a script

Script

• Simplest kind of m-file

• Type up a bunch of commands and save as filename.m

• Type filename in command window to run

• Example: first_program.m

Script

• Scripts have access to the variables in the workspace, both to read and to write– Changes done to variables in a script will

remain after the script is finished

• Scripts are useful for the automation of repetitive tasks

Function

• Functions are more complex than scripts

• Functions have their own local variables

• Functions return output as specified, and can accept input as specified

Function

• Anatomy of a function:

function name (must match file name)

input: xoutput: mean stdev

First line is function declaration

local variables:

x, n, mean, stdev

Examples: stat.m, stat2.m, triDiagMatrix.m, calcERadius.m

Commenting

• Comment your code!

• Any line starting with % is a comment

• Comments can be added to the end of existing lines by adding a %– Note that anything after % will be ignored

• In editor screen comments are green

• Any comments written at the beginning of an m-file will be displayed by the command help filename

Flow control

• Conditional control – if, else, switch

• Loop control – for, while, continue, break

• Program termination – return

Conditional control – if, else, elseif

if test statement

statements

elseif test statement

statements

else

statements

end

Note that ==,~=,>,< are all scalar tests.

To test matrices, try:

isequal

isempty

all

any

Conditional control – switch

switch variable or statement

case value

statements

case value

statements

otherwise

statements

end

Note: the switch statement does not ‘fall through’, only the true case statement will execute.

Loop control – for, while

for varname = min:max

statements

end

while condition is true

statements

end

Note: continue, break and return

-continue skips the remainder of the loop to pass control to the next iteration

-break exits from the loop early

-similar to break, return exits the program (script or function) early

.mat files• It is convenient to save

your workspace before experimenting with altering variables

• example: our_vars.mat• save filename• load filename

Hint: right-click on heading area to choose information to display

Reminder:

clear – clears workspace

clc – clears command window

File Input/Output

• Several methods exist in MATLAB depending on the type of file you are trying to read or write

• Easiest method – the import data wizard– File Import Data…– Follow on-screen instructions

• In scripts, use importdata command– help importdata

MATLAB File I/O

List of file types that MATLAB can read in and write out (version 2009a).

Third-party software is available for netCDF files in older versions of MATLAB

You can import any of these file formats (except XLSB, XLSM, HDF5, and platform-specific video) using the Import Wizard or the importdata function.

MATLAB File I/O

Article on importing SDF files (includes importing into MATLAB): http://findarticles.com/p/articles/mi_m0HPJ/is_n6_v44/ai_14823379/pg_4/

Notes on other formats:

File I/O Example

• readField.m

Questions?

Recommended