290 likes | 463 Views
Introduction to Matlab. StatLab Workshop Yale University Maximiliano Appendino, Economics October 18 th , 2013. What is Matlab?. Matlab is a matrix-based tool for numerical computations Powerful Easy to use Programming language Interactive environment Lots of available toolboxes.
E N D
Introduction to Matlab StatLab Workshop Yale University Maximiliano Appendino, Economics October 18th, 2013
What is Matlab? • Matlab is a matrix-based tool for numerical computations • Powerful • Easy to use • Programming language • Interactive environment • Lots of available toolboxes
Getting Help • Useful links: http://statlab.stat.yale.edu/help/FAQ/matlab_FAQ.jsp • Mathworks' Getting Started • Matlab Center • Kermit Sigmon’s Matlab Primer • Many others • Google your question • Matlab’s help • Online • Statlab Consultants: Max Perez Leon, Zhentao Shi
Acquiring Matlab • ITS Software Library & Resources: • http://www.yale.edu/its/software/ • Free for students: Matlab R2013a • Available in Statlab locations • The Center for Science and Social Science Information • 219 Prospect St, Basement • Kline Biology Tower • Rosenkranz Hall • 115 Prospect St, Room 01
Launching Matlab • Double-click the “MATLAB R2013a” icon on the desktop • Or click the start bottom, type MATLAB and enter • Usual Interface: • Command Window • Workplace • .MAT files • Command history • Current Folder
Interface • Can be used as a calculator • “help” gives you a list of all topics • “help topic” informs you about the particular topic • Example: >> help >> help stats >> help normcdf
Entering Matrices • Entered manually: >> A = [1 2 3 4; 5 6 7 8; 9 10 11 12] • Generate it by built-in functions • Loaded from a file • .MAT or Menu File Import Data…
Matrix Operation • + addition • - subtraction • * multiplication • ^ power • ‘ transpose • Element-by-element: preceded the operators by . • Subscripts: >> B = A(2,3)
Matrix Operation • Matrix Multiplication >> [1 2; 3 4]*[1 2; 3 4] [7 10; 15 22] • Element-by-element Multiplication >> [1 2; 3 4].*[1 2; 3 4] [1 4;9 16]
The Colon Operator : • One of Matlab’s most important operators: • Portions of a matrix: >> C = A(:,3) >> D = A(1,:) >> E = A(1:2,1:3) • Create matrices using increments: >> F = [1:0.1:1.5]’ >> G = [1:0.1:1.5; 1:0.5:3.5]
Matrix Generation Functions • Zeros: >> zeros(3,3) • Ones: >> ones(3,3) • Identity: >> eye(3) • More on matrices and linear algebra: >> help elmat >> help matfun
Random Matrices • Pseudo-Random numbers: • Change the seed: >> rng('shuffle') >> rng(15) • U[0,1] random variable: >> RU = rand(3,4) • Normal random variable: >> RN = randn(4,3)
Matrix manipulation • Concatenation: >> A2 = [A A.^2; A./2 A] • Deleting rows and columns: >> A2(:,7:8) = [] • Adding rows and columns: >> A2 = [1:2:11;A2] • Knowing the size: >> sizeA2 = size(A2)
Suppressing Output • If you simply type a statement and press Enter Matlab automatically displays the results on the Command Window • If you end the line with a semicolon ; Matlab performs the computation but does not display any result >> H = rand(2,2) >> H = rand(2,2); >> H
Functions • Matlab provides a large number of standard elementary mathematical functions: >> abs(-10) >> sqrt(9) >> x = [0:0.1:2*pi]; >> y = sin(y); • Look for the ones you need: • Google >> help
Graphics • Matlab generate 2-dimensional plots easily: >> plot(x,y) >> y2 = y + 0.25; >> y3 = y + 0.50; >> plot(x,y,x,y2,x,y3) • With a friendly interface to edit them
Graphics • Also 3-dimensional ones: • First we need to generate a grid: >> [X,Y] = meshgrid([-2:.2:2]); • Second we can calculate the function to graph: >> Z = X.*exp(-X.^2-Y.^2); • Finally the graph: >> surf(X,Y,Z)
Programming • M-files contain Matlab code • .m is their extension • Matlab editor • Can be used as any command or function as long as they are in the “Current Folder” • Two types: • Scripts • Functions
Scripts • A list of code grouped together • It does not accept argument or return output • Use them to register your work • Example: File New Script disp(‘Hello’) File Save test.m >> test
Functions • Functions are M-files that can accept input arguments and return output arguments. • The M-file and the function should have the same name • Example: function ar = area(radius) ar = pi*radius.^2; File Save area.m >> area(2)
Flow Control • Matlab has the standard flow controls • If statements • For loops • While loops
If statement a = 10; b = 11; if a > b disp('greater‘) elseif a < b disp('less‘) else disp('equal‘) end >> [a==b]
For loops betavec = zeros(100,1); beta = 0.925; a = [1:100]; for i = 1:100 betavec(i)=beta^a(i); end plot(betavec) • But you should avoid for loops if possible: >> newbetavec=beta.^a
While loops • The previous example would be: betavec = zeros(100,1); beta = 0.925; a = [1:100]; i = 1; while i < 101 betavec(i)=beta^a(i); i = i + 1; end plot(betavec)
Solving problems • Check if somebody else has already solved it • Matlab itself • Anybody using Matlab • Solve it by yourself • Use Matlab’s matrix processing capacity as much as you can • Be organized with your code
Thank you! Questions, Comments, Problems to solve?