Introduction to Matlab Οικονομίδης Δημήτρης
Desktop Tools (Matlab v6) Command Window –type commands Workspace –view program variables –clear to clear –double click on a variable to see it in the Array Editor Command History –view past commands –save a whole session using diary Launch Pad –access tools, demos and documentation
Matlab Files (.m) Use predefined functions or write your own functions Reside on the current directory or the search path –add with File/Set Path Use the Editor/Debugger to edit, run
Matrices a vector x = [ ] x = a matrix x = [1 2 3; 5 1 4; ] x = transpose y = x.’ y =
Matrices x(i,j) subscription whole row whole column y=x(2,3) y = 4 y=x(3,:) y = y=x(:,2) y = 2 1 2
Operators (arithmetic) +addition -subtraction *multiplication /division ^power ‘complex conjugate transpose.*element-by-element mult./element-by-element div.^element-by-element power.‘transpose
Operators (relational, logical) ==equal ~=not equal <less than <=less than or equal >greater than >=greater than or equal &AND |OR ~NOT pi … jimaginary unit, isame as j
Generating Vectors from functions zeros(M,N)MxN matrix of zeros ones(M,N)MxN matrix of ones rand(M,N)MxN matrix of uniformly distributed random numbers on (0,1) x = zeros(1,3) x = x = ones(1,3) x = x = rand(1,3) x =
Operators [ ]concatenation ( )subscription x = [ zeros(1,3) ones(1,2) ] x = x = [ ] x = y = x(2) y = 3 y = x(2:4) y = 3 5 7
Matlab Graphics x = 0:pi/100:2*pi; y = sin(x); plot(x,y) xlabel('x = 0:2\pi') ylabel('Sine of x') title('Plot of the Sine Function')
Multiple Graphs t = 0:pi/100:2*pi; y1=sin(t); y2=sin(t+pi/2); plot(t,y1,t,y2) grid on
Multiple Plots t = 0:pi/100:2*pi; y1=sin(t); y2=sin(t+pi/2); subplot(2,2,1) plot(t,y1) subplot(2,2,2) plot(t,y2)
Graph Functions (summary) plotlinear plot stemdiscrete plot gridadd grid lines xlabeladd X-axis label ylabel add Y-axis label titleadd graph title subplotdivide figure window figurecreate new figure window pausewait for user response
Math Functions Elementary functions (sin, cos, sqrt, abs, exp, log10, round) –type help elfun Advanced functions (bessel, beta, gamma, erf) –type help specfun –type help elmat
Functions function f=myfunction(x,y) f=x+y; save it in myfunction.m call it with y=myfunction(x,y)
Flow Control if A > B 'greater' elseif A < B 'less' else 'equal' end for x = 1:10 r(x) = x; end if statement switch statement for loops while loops continue statement break statement
Miscellaneous Loading data from a file –load myfile.dat Suppressing Output –x = [ ];
Getting Help Using the Help Browser (.html,.pdf) –View getstart.pdf, graphg.pdf, using_ml.pdf Type –help –help function, e.g. help plot Running demos –type demos –type help demos
Random Numbers x=rand(100,1); stem(x); hist(x,100)
Coin Tosses Simulate the outcomes of 100 fair coin tosses x=rand(100,1); p=sum(x<0.5)/100 p = Simulate the outcomes of 1000 fair coin tosses x=rand(1000,1); p=sum(x<0.5)/1000 p =
Coin Tosses Simulate the outcomes of 1000 biased coin tosses with p[Head]=0.4 x=rand(1000,1); p=sum(x<0.4)/1000 p =
Sum of Two Dies Simulate observations of the sum of two fair dies
Sum of Two Dies Simulate observations of the sum of two fair dies x1=floor(6*rand(10000,1)+1); x2=floor(6*rand(10000,1)+1); y=x1+x2; sum(y==2)/10000ans = p[2]= sum(y==3)/10000ans = p[3]= sum(y==4)/10000ans = p[4]= sum(y==5)/10000ans = p[5]= sum(y==6)/10000ans = p[6]= sum(y==7)/10000ans = p[7]= sum(y==8)/10000ans = p[8]= sum(y==9)/10000ans = p[9]= sum(y==10)/10000ans = p[10]= sum(y==11)/10000ans = p[11]= sum(y==12)/10000ans = p[12]=0.0278
Sum of Two Dies for i=2:12 z(i)=sum(y==i)/10000 end bar(z)
Bernoulli Trials-Binomial Distribution k=0:20; y=binopdf(k,20,0.5); stem(k,y) Bernoulli1720 k=0:20; y=binopdf(k,20,0.2); stem(k,y)
Combinatorics Permutations:n objects Permutations:choose k objects from n (hint: fill 2 spaces on a bookshelf with books chosen from 5 available books) Combinations:choose k objects from n without regard to the order (hint: make a committee of 2 people chosen from a group of 5 people)