Title: MATLAB
1MATLAB
2MATLAB User Environment
Workspace/Variable Inspector
Command Window
Command History
3Getting help
There are several ways of getting help Basic
help on named commands/functions is echoed to the
command window by gtgt help command-name A
complete help system containing full text of
manuals is started by gtgt helpdesk
4System Environment
- Windows
- MATLAB installed in c\matlab6.5
- Your codeanywhere convenient (e.g. h\matlab)
- Linux (Environment network)
- MATLAB installed in /apps/matlab
- Your code in /home/username/matlab
- Your environment configuration in /.matlab
5startup.m
- The script matlab_root\toolbox\local\matlabrc.m
is always run at startup it reads system
environment variables etc, and initialises
platform dependent settings. If present it will
run a user defined initialisation script
startup.m - Linux /home/user/matlab/startup.m
- Windows matlab_root\toolbox\local\startup.m
- Use startup.m for setting paths, forcing
preferred settings, etc.
6Example startup.m file (for my laptop)
------------------------------------- Matlab
startup file for IMB's laptop -------------------
------------------ -- add paths for my m-files
-- addpath d/matlab addpath d/matlab/bulk2.5 add
path d/matlab/bulk2.6 addpath d/matlab/coastal a
ddpath d/matlab/lidar addpath d/matlab/ndbc addp
ath d/matlab/page addpath d/matlab/sections addp
ath d/matlab/sharem addpath d/matlab/wavelet add
path d/matlab/LEM addpath d/matlab/GPSbook addpa
th d/matlab/FAAM addpath d/matlab/FAAM/winds add
path d/matlab/faam/bae -- add netCDF toolbox
-- addpath c/matlab701/bin addpath
c/matlab701/bin/win32 addpath d/matlab/netcdf ad
dpath d/matlab/netcdf/ncfiles addpath
d/matlab/netcdf/nctype addpath
d/matlab/netcdf/ncutility
-- add path for generic data -- addpath
d/matlab/coastlines coastline
data addpath d/cw96/flight_data/jun02 raw
cw96 addpath d/cw96/flight_data/jun07
aircraft data addpath d/cw96/flight_data/jun11 ad
dpath d/cw96/flight_data/jun12 addpath
d/cw96/flight_data/jun17 addpath
d/cw96/flight_data/jun19 addpath
d/cw96/flight_data/jun21 addpath
d/cw96/flight_data/jun23 addpath
d/cw96/flight_data/jun26 addpath
d/cw96/flight_data/jun29 addpath
d/cw96/flight_data/jul01 addpath d/cw96/runs
run definitions for cw96 flights
------------------------------------------------
---------------------- -- set default figure
options -- set(0,'DefaultFigurePaperType','a4')
this should be the default in EU
anyway set(0,'DefaultFigurePaperUnits','inches')
v6 defaults to cm for EU
countries set(0,'DefaultFigureRenderer','painters'
) v7 default OpenGL causes problems
7- addpath adds directories to the search path.
MATLAB will look in ALL directories on the path
for - Functions and scripts (.m files)
- MATLAB data files (.mat files)
- It will also look in the current directory
- The set commands in the example startup.m file
set some default graphics properties, overriding
the defaults will cover these later.
8The WORKSPACE
- MATLAB maintains an active workspace, any
variables (data) loaded or defined here are
always available. - Some commands to examine workspace, move around,
etc
who lists variables in workspace
gtgt who Your variables are x y
9whos lists names and basic properties of
variables in the workspace
gtgt whos Name Size Bytes
Class x 3x1 24
double array y 3x2
48 double array Grand total is 9 elements
using 72 bytes
pwd, cd, dir, ls similar to operating system
(but no option switches)
gtgt pwd ans D\ gtgt cd cw96\jun02 gtgt dir .
30m_wtv.mat edson2km.mat
jun02_30m_runs.mat .. 960602_sst.mat
edson_2km_bulk.mat
10VARIABLES
- Everything (almost) is treated as a
double-precision floating point array by default - Typed variables (integer, float, char,) are
supported, but usually used only for specific
applications. Not all operations are supported
for all typed variables. - IDL uses typed variables, but allows mixing of
types...at least to some extent
11gtgt x1 2 3 x 1 2 3 gtgt
x1,2,3 x 1 2 3 gtgt x1
2 3 4 gtgt x1234 x 1
2 3 4
When defining variables, a space or comma
separates elements on a row.
A newline or semicolon forces a new row these 2
statements are equivalent. NB. you can break
definitions across multiple lines.
12- 1 2D arrays are treated as formal matrices
- Matrix algebra works by default
1x2 row oriented array (vector)(Trailing
semicolon suppresses display of output)
gtgt a1 2 gtgt b3 4 gtgt ab ans
11 gtgt ba ans 3 6 4 8
2x1 column oriented array
Result of matrix multiplication depends on order
of terms (non-cummutative)
13- Element-by-element operation is forced by
preceding operator with .
gtgt a1 2 gtgt b3 4 gtgt a.b ??? Error
using gt times Matrix dimensions must agree.
Size and shape must match
14gtgt a1 2 A 1 2 gtgt b3 4 gtgt a.b ans
3 8 gtgt cab c 4 6
No trailing semicolon, immediate display of result
Element-by-element multiplication
Matrix addition subtraction operate
element-by-element anyway. Dimensions of matrix
must still match!
15gtgt A 134679 A 1 2 3
4 5 6 7 8 9 gtgt mean(A) ans
4 5 6 gtgt sum(A) ans 12
15 18
Most common functions operate on columns by
default
16INDEXING ARRAYS
n
m
- MATLAB indexes arrays
- 1 to N
- row,column
- 1,1 1,2 . 1,n
- 2,1 2,2 . 2,n
- 3,1 3,2 . 3,n
- . . .
- m,1 m,2 . m,n
- IDL indexes arrays
- 0 to N-1
- column,row
- 0,0 1,0 . n-1,0
- 0,1 1,1 . n-1,1
- 0,2 1,2 . n-1,2
- . . . .
- 0,m-1 1,m-1 . n-1,m-1
17gtgt A 134679 A 1 2 3
4 5 6 7 8 9 gtgt A(2,3) ans
6 gtgt A(13,2) ans 2 5 8 gtgt A(2,) ans
4 5 6
The colon indicates a range, ab (a to b)
A colon on its own indicates ALL values
18THE COLON OPERATOR
- Colon operator occurs in several forms
- To indicate a range (as above)
- To indicate a range with non-unit increment
gtgt N 51035 N 5 15 25 35 gtgt P 13
30-1010 P 1 2 3 30 20 10
19- To extract ALL the elements of an array (extracts
everything to a single column vector)
gtgt A 13 101030 100100300 A
1 2 3 10 20 30 100 200 300
gtgt A() ans 1 10 100 2 20 200 3 30 300
20LOGICAL INDEXING
- Instead of indexing arrays directly, a logical
mask can be used an array of same size, but
consisting of 1s and 0s usually derived as
result of a logical expression.
gtgt X 110 X 1 2 3 4 5 6 7 8
9 10 gtgt ii Xgt6 ii 0 0 0 0 0 0
1 1 1 1 gtgt X(ii) ans 7 8 9 10
21Basic Operators
- , -, , / basic numeric operators
- \ left division (matrix division)
- raise to power
- transpose (of matrix) flip along diagonal
- fliplr(), flipud() flip matrix about vertical
and horizontal axes.
22SAVING DATA
- MATLAB uses its own platform independent file
format for saving data files have a .mat
extension - The save command saves variables from the
workspace to a named file (or matlab.mat if no
filename given) - save filename saves entire workspace to
filename.mat - save var1 var2 filename saves named variables
to filename.mat - By default save overwrites an existing file of
the same name, the append switch forces
appending data to an existing file (but variables
of same name will be overwritten!) - save var1 var2 filename -append
23- Data is recovered with the load command
- load filename loads entire .mat file
- load filename var1 var2 loads named variables
- load filename ascii loads contents of an ascii
flatfile in a variable filename. The ascii
file must contain a rectangular array of numbers
so that it loads into a single matrix. - Xload(filename,-ascii) loads the ascii
file into a variable X - save var1 filename ascii saves a single
variable to an ascii flat file (rectangular array
of numbers)
24- There have been changes to the internal format of
.mat files between MATLAB v4 and v5 (major
changes to allow arrays with more than 2
dimensions, structures, cell arrays), and again
with v7 (minor change to use unicode instead of
ascii).Later versions will load old format
files. You can force save to an old file format
with v4 and v6 switchessave filename v6