Lecture 1 Matlab f09

32
Introduction to MATLAB 3 November 2009

Transcript of Lecture 1 Matlab f09

Page 1: Lecture 1 Matlab f09

Introduction to MATLAB

3 November 2009

Page 2: Lecture 1 Matlab f09

• Instructor: Andy Newman• Office Hours: Stop by room 306 (main

building) whenever• Email: [email protected]• Website:

www.atmos.colostate.edu/programming

Page 3: Lecture 1 Matlab f09

Syllabus• Week 1 (11/03)– Introduction to MATLAB

• GUI• Variables, operations, built in functions• Help• Script Files

• Week 2 (11/10)– Programming

• Syntax• Arrays: Numeric, cell, structure• Strings• Built in functions (i.e. find, mean, max, min, sum, etc)• File I/O (text, binary, netCDF, HDF)• Basic program organization• Debugging

Page 4: Lecture 1 Matlab f09

Syllabus• Week 3 (11/17)– Graphics

• Line, scatter, bar, surface, contour plots, etc• Figure properties (i.e. Axis labels, tick marks)• Colormaps• Saving your plots• Images in MATLAB

• Week 4 (12/01)– Somewhat more advanced topics

• Making functions• Vectorized code• 3-D plots• Data manipulation in MATLAB: regression, derivatives, others you

want…• MATLAB Central File Exchange

Page 5: Lecture 1 Matlab f09

Syllabus

• Week 5 (12/08)– Toolboxes• Mapping• Signal processing• Statistics

– Other topics you want to discuss

Page 6: Lecture 1 Matlab f09

What is MATLAB?

• MATLAB is a simple programming language with its own extensive library of mathematical and graphical subroutines

• It integrates computation and graphics in one easy to use interface

• MATLAB stands for MATrix LABoratory.• MATLAB is very extendable. There are many

add-ons (toolboxes) for specific requirements

Page 7: Lecture 1 Matlab f09

What is MATLAB?

• If MATLAB can process and visualize data, why ever use FORTRAN, C, or some other language?

• MATLAB is an interpreted language– It is not a compiled language– Therefore identical code executes more slowly,

sometimes MUCH more slowly in MATLAB– MATLAB has more memory overhead than

equivalent FORTRAN or C programs

Page 8: Lecture 1 Matlab f09

What is MATLAB?

• Main Features– Simple programming rules– Extended accuracy – Continuity among integer, real and complex values– Comprehensive mathematical library– Extensive graphics tools– Linkages with other languages– Transportability across environment

• MATLAB scripts will work on PC, UNIX, Mac

Page 9: Lecture 1 Matlab f09

Starting MATLAB

• On UNIX: type matlab at command prompt• Click on the MATLAB icon if you are on a PC• Mac can probably do both…• Issues on startup– MATLAB needs a connection to the license server– Check internet connection– Too many users can use all available licenses• Try again later

Page 10: Lecture 1 Matlab f09

Starting MATLAB• Once MATLAB is running the GUI (Graphical User

Interface) will appear– Default Window apperance

Page 11: Lecture 1 Matlab f09

Starting MATLAB

• Command Window– Main window

in MATLAB– Commands

entered here

Page 12: Lecture 1 Matlab f09

Starting MATLAB

• MATLAB displays >> prompt when ready for a command– Will have no >> prompt when processing

commands– Newer versions also say “Ready” or “Busy” in

lower left corner of GUI– Can use arrow keys to work through command

history and modify commands• Essentially the same as UNIX command prompt

Page 13: Lecture 1 Matlab f09

MATLAB GUI• Current Folder Window– Displays contents of the current

working directory– MATLAB Search Path

• Path that MATLAB uses to search for script and function files

• Default path contains all built in MATLAB functions

• Can modify path through MATLAB function or going under File>Set Path

• MATLAB will ask to modify path if running a program from a folder not in path

Page 14: Lecture 1 Matlab f09

MATLAB GUI• Workspace Window– Shows all currently defined

variables – Array dimensions– Min, max values– Good debugging tool

• Command History– Shows all past commands– Can copy and past commands into

command window– Double click will execute command

Page 15: Lecture 1 Matlab f09

MATLAB GUI

• Other windows include editor window, figure window, variable editor, help, etc

• Will discuss editor and figure window in upcoming weeks, get to help window in a little bit

Page 16: Lecture 1 Matlab f09

MATLAB GUI

• Desktop Menus• File Menu– New• Create new MATLAB

program file (m-file)– Open existing m-file– Import data– Set Path– Open recent m-files

Page 17: Lecture 1 Matlab f09

MATLAB GUI

• Edit Menu– Copy, cut, paste– Find and replace

phrases– Clear command

history, workspace

• Desktop Menu– Change appearance

of desktop• Select windows to

display

Page 18: Lecture 1 Matlab f09

Interactive Commands

• Enter commands at >> prompt

• Variable ‘x’ automatically allocated– MATLAB does not require declaration of variables– Nice, but can get you in trouble so be careful

Page 19: Lecture 1 Matlab f09

Interactive Commands

• MATLAB is case sensitive– Variable ‘ans’ will take value

of result of command if no equal sign specified• Holds most recent result only

– Semicolon at end of line will suppress output, it is not required like in C• Useful in script files and

debugging

Page 20: Lecture 1 Matlab f09

Interactive Commands

• Format of output – Defaults to 4 decimal places– Can change using format statement– format long changes output to 15 decimal places

Page 21: Lecture 1 Matlab f09

Operators

• Scalar arithmetic operationsOperation MATLAB form– Exponentiation: ^ ab a^b– Multiplication: * ab a*b– Right Division: / a / b = a/b a/b– Left Division: \ a \ b = b/a a\b– Addition: + a + b a+b– Subtraction: - a – b a-b

• MATLAB will ignore white space between variables and operators

Page 22: Lecture 1 Matlab f09

Order of Operations

• Parentheses• Exponentiation• Multiplication and division have equal

precedence• Addition and subtraction have equal

precedence• Evaluation occurs from left to right• When in doubt, use parentheses– MATLAB will help match parentheses for you

Page 23: Lecture 1 Matlab f09

Logical Operators

Page 24: Lecture 1 Matlab f09

Variables

• MATLAB is case sensitive – X is not equal to x

• Variable names must start with a letter– You’ll get an error if this doesn’t

happen– After that, can be any

combination of letters, numbers and underscores• No special characters though

Page 25: Lecture 1 Matlab f09

Variables

• Variable types– Numeric – Logical– Character and string (discussed next week)– Cell and Structure (discussed next week)– Function handle (discussed in week 3)

Page 26: Lecture 1 Matlab f09

Variables

• Don’t name your variables the same as functions– min, max, sqrt, cos, sin, tan, mean, median, etc– Funny things happen when you do this

• MATLAB reserved words don’t work either– i, j, eps, nargin, end, pi, date, etc– i, j are reserved as complex numbers initially• Will work as counters in my experience so they can be

redefined as real numbers

Page 27: Lecture 1 Matlab f09

MATLAB Help

• Ways to get help in MATLAB– help function name– Provides basic text

output• Type helpwin on

command line• Look under the help menu

on the desktop

Page 28: Lecture 1 Matlab f09

MATLAB Help• Product help window– Help>product help

Page 29: Lecture 1 Matlab f09

MATLAB Help

• Can browse or search product help for a specific function or topic

• MATLAB help has introductory help material, basic overviews of how to use functions, plot, program in MATLAB, example code, etc

• lookfor keyword command will also find functions that have the keyword in them

• doc function_name brings up the full documentation for the function

Page 30: Lecture 1 Matlab f09

Resources• Books– Two that seem to be good:

• A Concise Introduction to MATLAB by William J. Palm III. 2008, McGraw-Hill, 418 pp.

• Essential MATLAB for Engineers and Scientists (Fourth Edition) by Brian Hahn and Dan Valentine. 2010, Academic Press, 480 pp.

• Online tutorials and examples are everywhere• Note that older books and tutorials may have

options that are no longer available and functions that no longer work– Figures are the prime example

Page 31: Lecture 1 Matlab f09

Next Week

• Arrays• Strings• File I/O• Program layout and debugging

Page 32: Lecture 1 Matlab f09

Questions?