VIEWS: 4 PAGES: 36 POSTED ON: 10/3/2012 Public Domain
Matlab Basics FIN285a: Lecture 2.1 Fall 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 = 123 456 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