CIVL 5320 Thomas Ng 1 What is Matlab? MATrix LABoratory A high-performance language for technical computing An easy-to-use interactive environment for computation, visualization and programming 2 Interactive: Direct key in command after “>>” >> help >> lookfor CCChang Off-line: Put all commands into a m-file (name.m) and execute the file as follows >> name (without suffix .m) All commands in the file will be executed sequentially The m-file has to be in the current directory or directories set by “pathtool” 3 mat-file (name.mat): Contains pre-defined variables, vectors and matrices >> save name Save all variables into a file called name.mat >> save name CCChang is wonderful Save variables, vectors or matrices “CCChang”, “is” and “wonderful” into a file called name.mat >> load name Load all variables in the name.mat to the MATLAB registry 4 Do the followings >> help help >> help lookfor >> help plot >> lookfor plot Put sdof.m and elcen.mat into the current directory >> sdof >> whos >> save temp >> clear all >> whos >> load temp >> whos Create a m-file that contains the above commands and run the m-file 5 Sequence of operations >> CCChang Is CCChang a variable? If not, next Is CCChang a built-in function? If not, next Is CCChang a m-file? If not, next ??? Undefined function or variable 'CCChang‘ Some useful commands Interrupting running the program: Ctrl+c Long command: … >> x=sin(1)+1+cos(2)+sin(2)+ sin(2)+... sin(4)+ sin(5)+ sin(6)+ sin(7) Suppress echo: ; Comment: % 6 Some useful commands >> Clear >> Close Scalar, vector and matrix >> a=321 % A a >> Rowvector = [12 14 63] >> Colvector= [13; 45; -2] >> Matrix= [1 2 3; 4 5 6; 7 8 9] >> sub_matrix= Matrix( 1:2 , 2:3) >> A=123 7 Do the followings >> A=123 >> A=123 %This is fun! >> A=123; >> x=sin(1)+1+cos(2)+sin(2)+ sin(2)+... sin(4)+ sin(5)+ sin(6)+ sin(7) >> ColA=[1 ; 2 ; 3] >> RowA=[1 2 3] >> GuessA=[1:10] >> GuessB=[1:3:10] >> GuessC=[1:10]’ 8 >> CC=[1 2 3; 4 5 6; 7 8 9] >> CC=[1:3; 4:6; 7:9] >> subCC1=CC(1:2, 2:3) >> subCC2=CC(: , 2:3) >> subCC3=CC(1:2, :) % what do you expect? % what do you expect? % what do you expect? >> clear all 9 Matrix operation Power Multiplication Division or NOTE: ^ or .^ a^b * or .* a*b / or ./ a/b \ or .\ b\a 56/8 = 8\56 - (unary) + (unary) Addition + Subtraction Assignment = or or or or a.^b a.*b a./b b.\a Element by element operation a + b a - b a = b (assign b to a) 10 ans pi inf NaN i and j eps realmin realmax Default variable name for results Value of Not a number e.g. 0/0 i = j = 1 Smallest incremental number The smallest usable positive real number The largest usable positive real number 11 Command Description eye Identity matrix zeros Zeros array norm Norm of vector or matrix det Matrix determinant eig Eigenvalues and eigenvectors lsim Simulate response of LTI models for … end Repeat statements (do loop) demo Run demonstrations Many many more! Toolboxes contain specialized commands 12 Do the followings >> RowA=[1 2 3]; ColA=[1 ; 2 ; 3]; >> RowA*ColA >> ColA*RowA >> ColA.*RowA >> ColA.*RowA’ >> RowA.*ColA >> RowA.*ColA’ >> RowA./ColA >> RowA./ColA’ 13 >> CC=[1 2; 3 4] >> det(CC) >> eye(2) >> zeros(2,2) >> DD=[CC zeros(2,2); zeros(2,2) eye(2)] 14 Figure control >> figure(x) % Create/go to figure x >> clf(x) % Clear figure x >> close(x) % Close figure x >> title(‘I love MATLAB’) % Figure caption Plotting >> plot(y) % Plot y versus index >> plot(x,y) % Plot y versus x >> semilogx(x,y) >> semilogy(x,y) >> loglog(x,y) >> plot3(x,y,z) >> subplot(m,n,p) % Create tiled plots 15 Plotting control >> axis([xmin xmax ymin ymax]) >> xlabel(‘This is x-axis label’) >> ylabel(‘This is y-axis label’) >> text(x, y, ‘This is a label’) % Add text to (x,y) 16 Open sdof.m file Go through the codes Run sdof.m file Modify the file Re-run 17 18