Matlab Basics FIN250f: Lecture 3 Spring 2010 Grifths Web Notes.

Post on 04-Jan-2016

213 views 0 download

transcript

Matlab Basics

FIN250f: Lecture 3

Spring 2010

Grifths Web Notes

Loading Software

Matlab Follow matlab instructions for your own

machine Downloads

We will eventually be downloading various matlab programs and data from the website

Matlab Basics

Math Operations Variables Vectors Functions Fancy subscripts Program files

Math Operations

Super calculator +,-,*,/,^, ()

Variables

x = 1 1+x x = 10 y = 20 x*y The importance of ; (no printing) x = 1;

Vectors

In matlab variables can be vectors Vector = list of numbers

x = [1 5 2 1 5]; 2*x x+1

Generating Vectors

: operator 1:10 1:2:10 60:-1:35 x = 1:5;

Parts of Vectors

x(2) x(10) x(b) x(10:15), x(20:end)

Vector Operations(dot operators)

x = [1 2 3]; y = [ 2 1 3]; x .* y x ./ y x .^ y

Matrices

x = [1 2 3; 4 5 6];

x = 1 2 3 4 5 6

rows = 2, columns = 3

Parts of Matrices

x = 1 2 3 4 5 6 x(row, column) x(2,1) = 4 x(2,:) = 4 5 6 x(1,1:2) = 1 2

Functions

Scalar functions: f(x) log(x), exp(x), sqrt(x) sin(x), cos(x), tan(x)

Vector functions sum(x), mean(x), median(x)

More Functions

plot(x) plot(x,'*'); Most important function!!!!

Help help functionname help plot

Even More Functions

zeros(m,n) : returns a matrix of zeros ones(m,n) : returns a matrix of ones rand(m,n) : returns a matrix of uniform

[0,1] random numbers randn(m,n) : returns a matrix of normal,

mean 0, variance 1, random numbers (Note: We will often use my own function

normal instead of randn)

Programs (mfiles)

Execute commands in a file filename.m Edit using matlab editor (colors) Examples:

Conditions

>, <, >=, <=, ==, ~=

x > 5 x < 10

If conditions

if (x>1) x = x/2; end

If/else

if (x<0) x = x+1; else x = -1*x; end

For loops

for j = [1 2 3] x(j) = j+1; end

For Loops

for j = 1:10 x(j) = 2^j; end

also x = 2.^(1:10);

For Loops

Useful for dealing with arrays Costly in terms of computer time

While Loops

x = 20; y = 0; while (x>3) y = y+sqrt(x); x = x-5; end

If’s With Vectors

if (a==b) disp(‘a equals b’) end

What if a and b are vectors? True if every element of a equals every

element of b

If’s With Vectors

if (a~=b) disp(‘a not equals b’) end

True if every element of a is not equal

Any and All

if any(a==b) disp(‘at least one equal’) end

if all(a==b) disp(‘all are equal’) end For matrices this gets more complicated

Fancy Subscripts (find function)

x = [5 2 -3 -4 1]; y = x(find(x<0));

all x values less than zero put in y k = find(x<0); k = subscripts k = [ 3 4];

Fancy Subscripts

x = [5 2 -3 -4 1]; y = x(x<0); all x values less than zero put in y k = x<0; k = [0 0 1 1 0]; y = x(k) = [-3 -4] s = sum(k) = 2

Important: Comment Lines

Lines starting with % are comments

x = 1; y = 2; z = x*y; % this really is not doing very much

Getting and Storing Results

diary filename (all results to filename) diary off (stop)

Load

load x.dat File x.dat = 1 2 3 4 5 6

Same thing in matrix x x file must be matrix

Save

save (saves everything to file matlab.mat) load (restores all settings) useful for taking a break, and starting

where you left off

Save

save filename x y z (save to filename.mat variables x, y, z)

save filename x y z -ascii (save in ascii format)

User Functions

Define your own functions Very important and powerful

Function file (positives.m)

function count = positives(x) % usage: count = positives(x) % x = vector % count = number greater than zero count = sum(x>0);

Fancy function stuff

Multiple returns

function [ count, count2] = positives(x) count = sum(x>0); count2 = sum(x>2);

Summary

We will see many more of these matlab related commands as we make use of them