Getting Started with MATLAB

Similar documents
Introduction to Scientific Computing with Matlab

Introduction to Scientific Computing with Matlab

Getting Started with Matlab

What is MATLAB? It is a high-level programming language. for numerical computations for symbolic computations for scientific visualizations

CDA5530: Performance Models of Computers and Networks. Chapter 8: Using Matlab for Performance Analysis and Simulation

Eric W. Hansen. The basic data type is a matrix This is the basic paradigm for computation with MATLAB, and the key to its power. Here s an example:

INTRODUCTION TO MATLAB, SIMULINK, AND THE COMMUNICATION TOOLBOX

Grace days can not be used for this assignment

CDA6530: Performance Models of Computers and Networks. Chapter 4: Using Matlab for Performance Analysis and Simulation

Introduction to MATLAB

CDA6530: Performance Models of Computers and Networks. Chapter 4: Using Matlab for Performance Analysis and Simulation

ELEC4042 Signal Processing 2 MATLAB Review (prepared by A/Prof Ambikairajah)

Introduction to MATLAB. Simon O Keefe Non-Standard Computation Group

Prof. Manoochehr Shirzaei. RaTlab.asu.edu

Some elements for Matlab programming

Math 7 Elementary Linear Algebra PLOTS and ROTATIONS

Introduction to Matlab

EE 301 Signals & Systems I MATLAB Tutorial with Questions

LabVIEW MathScript Quick Reference

(Creating Arrays & Matrices) Applied Linear Algebra in Geoscience Using MATLAB

2.0 MATLAB Fundamentals

MATH (CRN 13695) Lab 1: Basics for Linear Algebra and Matlab

How to learn MATLAB? Some predefined variables

Introduction to Matlab

Introduction to MATLAB

Learning from Data Introduction to Matlab

PART 1 PROGRAMMING WITH MATHLAB

MATLAB Tutorial. Digital Signal Processing. Course Details. Topics. MATLAB Environment. Introduction. Digital Signal Processing (DSP)

Introduction to MatLab. Introduction to MatLab K. Craig 1

Introduction to Matlab. By: Dr. Maher O. EL-Ghossain

Lecturer: Keyvan Dehmamy

Introduction to MATLAB LAB 1

Programming in Mathematics. Mili I. Shah

Chapter 2. MATLAB Fundamentals

INTRODUCTION TO MATLAB

MATLAB Fundamentals. Berlin Chen Department of Computer Science & Information Engineering National Taiwan Normal University

What is Matlab? A software environment for interactive numerical computations

EGR 111 Plotting Data

MATLAB Tutorial. Mohammad Motamed 1. August 28, generates a 3 3 matrix.

A Guide to Using Some Basic MATLAB Functions

Matlab Tutorial: Basics

Introduction to MATLAB

Department of Chemical Engineering ChE-101: Approaches to Chemical Engineering Problem Solving MATLAB Tutorial Vb

Getting Started. Chapter 1. How to Get Matlab. 1.1 Before We Begin Matlab to Accompany Lay s Linear Algebra Text

ARRAY VARIABLES (ROW VECTORS)

ECE 3793 Matlab Project 1

Desktop Command window

12 whereas if I terminate the expression with a semicolon, the printed output is suppressed.

Numerical Methods in Engineering Sciences

1 Introduction to Matlab

AMS 27L LAB #2 Winter 2009

Getting Started with MATLAB

ECE Lesson Plan - Class 1 Fall, 2001

Physics 326G Winter Class 2. In this class you will learn how to define and work with arrays or vectors.

Introduction to Matlab to Accompany Linear Algebra. Douglas Hundley Department of Mathematics and Statistics Whitman College

Getting started with MATLAB

MAT 275 Laboratory 1 Introduction to MATLAB

Introduction. Chapter computer programming

Math Scientific Computing - Matlab Intro and Exercises: Spring 2003

Matlab Introduction. Scalar Variables and Arithmetic Operators

MATLAB Basics. Configure a MATLAB Package 6/7/2017. Stanley Liang, PhD York University. Get a MATLAB Student License on Matworks

PowerPoints organized by Dr. Michael R. Gustafson II, Duke University

ME 121 MATLAB Lesson 01 Introduction to MATLAB

Introduction to Octave/Matlab. Deployment of Telecommunication Infrastructures

Appendix A. Introduction to MATLAB. A.1 What Is MATLAB?

STAT/MATH 395 A - PROBABILITY II UW Winter Quarter Matlab Tutorial

Schedule. Matlab Exam. Documentation. Program Building Blocks. Dynamics Makeup Exam. Matlab Exam. Semester Summary and Wrap up.

Objectives. 1 Running, and Interface Layout. 2 Toolboxes, Documentation and Tutorials. 3 Basic Calculations. PS 12a Laboratory 1 Spring 2014

Matlab Tutorial. The value assigned to a variable can be checked by simply typing in the variable name:

Introduction to Matlab. Summer School CEA-EDF-INRIA 2011 of Numerical Analysis

Purpose of the lecture MATLAB MATLAB

Introduction to. The Help System. Variable and Memory Management. Matrices Generation. Interactive Calculations. Vectors and Matrices

1 Introduction. 2 Useful linear algebra (reprise) Introduction to MATLAB Reading. Spencer and Ware (2008), secs. 1-7, 9-9.3,

A Tour of Matlab for Math 496, Section 6

Introduction to MATLAB

Fall 2014 MAT 375 Numerical Methods. Introduction to Programming using MATLAB

Laboratory 1 Octave Tutorial

Computational Modelling 102 (Scientific Programming) Tutorials

Introduction to MATLAB

3 Introduction to MATLAB

MatLab Just a beginning

AMATH 352: MATLAB Tutorial written by Peter Blossey Department of Applied Mathematics University of Washington Seattle, WA

MATLAB The first steps. Edited by Péter Vass

APPM 2460 PLOTTING IN MATLAB

Time-Saving Hint: Use the up-arrow on your keyboard to cycle through old commands.

Introduction to MATLAB

INTRODUCTION TO MATLAB PLOTTING WITH MATLAB

Table of Contents. Basis CEMTool 7 Tutorial

Introduction to Matlab

Mathworks (company that releases Matlab ) documentation website is:

UNIVERSITI TEKNIKAL MALAYSIA MELAKA FAKULTI KEJURUTERAAN ELEKTRONIK DAN KEJURUTERAAN KOMPUTER

Introduction to MATLAB

MATLAB SUMMARY FOR MATH2070/2970

ENGR Fall Exam 1

MATLAB Project: Getting Started with MATLAB

MATLAB TUTORIAL FOR MATH/CHEG 305

W1005 Intro to CS and Programming in MATLAB. Plo9ng & Visualiza?on. Fall 2014 Instructor: Ilia Vovsha. hgp://

Chapter 2. MathScript

Introduction to PartSim and Matlab

Interactive Computing with Matlab. Gerald W. Recktenwald Department of Mechanical Engineering Portland State University

Transcription:

Getting Started with MATLAB Math 315, Fall 2003 Matlab is an interactive system for numerical computations. It is widely used in universities and industry, and has many advantages over languages such as C, Fortran and Java, including: It is very easy to write Matlab code to solve complex problems in mathematics, sciences and engineering. Data structures in Matlab require minimal attention. Arrays, for example, do not need to be declared. Matlab has high quality graphics and visualization tools that can be used to analyze computational results. Matlab provides additional toolboxes that are designed to solve specific classes of problems. For example, there are toolboxes for image processing, signal processing, differential equations, splines and optimization. Because Matlab is an interpretive language codes written in C, C++ and Fortran can be more efficient for very large problems. However, Matlab is an excellent for developing algorithms and problem solving environments, and is widely used in universities, research institutions and industry. Starting and Exiting Matlab. Log into one of the computers in the CS lab. In a terminal window, at the prompt enter the command: matlab65. When Matlab starts up, a Matlab gui interface should appear on the screen. The command window contains a prompt that looks like: >> We can enter data and execute commands at this prompt. To exit Matlab, you can pull down the File menu, and let go on Exit MATLAB. Alternatively, in the command window, you can use the exit command: >> exit Matlab gets its name from Matrix labratory, so it is very useful for solving problems involving matrices and vectors. We explore some of these basics through a series of examples. 1

Initializing Vectors. We can create row and/or column vectors in Matlab as follows: >> x = [1 2 3 4] >> x = [1 2 3 4] >> x = [1, 2, 3, 4] >> x = [1; 2; 3; 4] Actually, rather than thinking of these as row or column vectors, we should think of them as either 1 4 or 4 1 matrices. Initializing Matrices. In general, we can create matrices with more than one row and column just as we did above. Here are some examples: >> A = [1 2 3 4 5 6 7 8 9 10 11 12] >> A = [1 2 3 4; 5 6 7 8; 9 10 11 12] Matrix Operations. After we create matrices, we can use +, -, * as usual linear algebra operations. For example, suppose we enter the following matrices: >> A = [1 2; 3 4]; >> B = [5 6; 7 8]; >> c = [1; -1]; >> r = [2 0]; Then what happens when we enter the following commands? >> C = A*B >> y = A*c >> z = A*r 2

Transposing Matrices. Recall that the transpose of a matrix essentially flips the matrix on its side; that is rows become columns, and columns become rows. For example, if we have the matrices and vectors: then A = A T = [ 1 2 3 4 [ 1 3 2 4 ] ], c = [ 1 1 ], r = [ 2 0 ],, c T = [ 1 1 ], r T = In Matlab the single quote is used to perform the transpose operation. For example, suppose we consider the following matrices: >> A = [1 2; 3 4]; >> B = [5 6; 7 8]; >> c = [1; -1]; >> r = [2 0]; What do we get when we enter the following commands? >> D = A >> c *c >> c*c [ 2 0 ]. Other Array Operations. Matlab supports certain array operations (not normally found in a standard linear algebra class) that can be very useful in scientific computing applications. Some of these operations are:.*./.ˆ The dot indicates that the operation is to act on the matrices in an element by element way. That is, 1 5 5 2 3. 6 7 = 12 21 4 8 32 1 2 3 4.ˆ3 = 1 8 27 64 3

Initializing Vectors with Many Entries. Suppose we want to create a vector, x, containing the values 1, 2,..., 100. We could do this using a loop: for i = 1:n x(i) = i; end In this example, when the code begins, how does Matlab know x will be a vector of length 100? The answer to this question is: it does not know! But Matlab has a very smart memory manager that creates space as needed. Forcing the memory manager to work a lot can make codes very inefficient. Fortunately, if we know how many entries x will have, then we can help out the memory manager by first allocating space using the zeros function. Here is how we might do it: x = zeros(1,n); for i = 1:n x(i) = i; end In general, the function zeros(m,n) creates an m n array containing all zeros. Thus, in our case, zeros(1,n) creates a 1 n array, which is just a row vector with n entries. Actually, there is a much easier, and better way, to initialize a simple vector like this using Matlab s vector operations. This can be done as follows: x = 1:n; The colon operator is very useful! Let s see another example where we use it to create a vector. Suppose we want to create a vector, x, containing n entries equally spaced between a = 0 and b = 1. The distance between each of the equally spaced points is given by h = b a n 1 = 1, and the vector, x, should therefore contain the entries: n 1 0, 0 + h, 0 + 2 h,, (i 1) h,,, 1 We can create a vector with these entries, using the colon operator, as follows: h = 1 / (n-1); x = 0:h:1; We often want to create vectors like this in mathematical computations. Therefore, Matlab provides a function for it, called linspace. In general, linspace(a, b, n) generates a vector of n equally spaced points between a and b. So, in our case with a = 0 and b = 1, we can use: 4

x = linspace(0, 1, n); The moral is: If we want to do something fairly standard, then chances are Matlab provides an optimized function for it. To find out, we could use the help and/or lookfor commands. Evaluating Functions and Plotting. Suppose we want to plot the function sin(3πx) on the interval 0 x 1. We learned the basic idea of plotting when we were six years old: Plot a bunch of points (x i, y i ), and connect the dots. We can do this in Matlab by: create a vector of x-coordinates create a vector of y-coordinates use the Matlab command plot(x,y) This can be done as follows: x = linspace(0, 1, n); y = zeros(1, n); for i = 1:n y(i) = sin(3*pi*x(i)); end plot(x, y) Note that in this code we have used the linspace command to efficiently create the vector x, helped out the memory manager by using the zeros command to allocate space for the vector y, used a loop to generate the entries of y one at at time, and used the plot command to draw the graph. We can actually shorten this code by replacing the loop with a single, vector operation. In general, functions like sin can be used on arrays of entries. That is, if z is an m n array containing entries z ij, then sin(z) is an m n array containing the entries sin(z ij ). Thus, we can do the above computations simply as: x = linspace(0, 1, n); y = sin(3*pi*x); plot(x,y) 5

If you can use array operations instead of loops, then you should do it. In general, array operations are more efficient than using loops. Matlab has many more, very sophisticated, plotting capabilities. Three commands you might find useful are axis, subplot, and hold. axis is mainly used to scale the x and y-axes on the current plot as follows: >> axis([xmin xmax ymin ymax]) subplot is mainly used to put several plots in a single Figure window. Specifically, >> subplot(m, n, p) breaks the Figure window into an m n matrix of small axes, and selects the p-th axes for the current plot. The axes are counted along the top row of the Figure window, then the second row, etc. hold allows you to overlay several plots on the same set of axis. Example: Chebyshev polynomials are used in a variety of engineering applications. The nth Chebyshev polynomial is defined as p n (x) = cos(n arccos(x)), 1 x 1. (a) First we plot, in the same Figure, the Chebyshev polynomials for n = 1, 3, 5, 7. This can be done with: >> x = linspace(-1, 1, 200); >> p1 = cos(acos(x)); >> p3 = cos(3*acos(x)); >> p5 = cos(5*acos(x)); >> p7 = cos(7*acos(x)); >> subplot(2,2,1), plot(x, p1) >> subplot(2,2,2), plot(x, p3) >> subplot(2,2,3), plot(x, p5) >> subplot(2,2,4), plot(x, p7) (b) When you use the plot command, Matlab chooses default values for the axes. You can change these as follows: >> subplot(2,2,1), axis([-1, 1, -2, 2]) >> subplot(2,2,2), axis([-2, 2, -1, 1]) >> subplot(2,2,3), axis([-2, 1, -1, 2]) >> subplot(2,2,4), axis([-2, 2, -2, 2]) 6

(c) Finally, we can plot all of the polynomials on the same set of axes, using different colors for each curve. This can be done as follows: >> subplot(1,1,1) >> plot(x, p1, b ) >> hold on >> plot(x, p3, r ) >> plot(x, p5, g ) >> plot(x, p7, c ) Function mfiles and Script mfiles. So far we have only used Matlab as a sophisticated calculator. It is much more powerful than that, and should be thought more as a computer language. Therefore, there should be some capability for writing sophisticated programs, which include functions, subroutines, structures, classes, objects, etc. Matlab has all of these capabilities, but since this is not a Matlab programming class, we cannot go into details about them. However, we should be aware at least of two types of programs that we can write: scripts and functions. Each kind of program is written using your favorite editor, and should be saved in file with the.m extension. The difference between a script and a function is: A script is a file containing a collection of Matlab commands which are executed when the name of the file is entered at the Matlab prompt. This is very convenient if you have to enter a lot of commands. But you must be careful: variables in a script are global to the Matlab session, and it can be easy to unintentionally change values in certain variables. A function is a file containing a collection of Matlab commands that are executed when the function is called. The first line of a function must have the form: function [out1, out2,... ] = FunctionName(input1, input2,...) Any data or variables created within the function are private, and so there is less of a chance of accidentally changing a variable. You can have any number of inputs to the function. If you want to pass back results from a function, then you can specify any number of outputs. Functions can call other functions, and in this way you can write sophisticated programs as in any powerful language such as C, Fortran and Java. The beauty of Matlab, though, is that you do NOT need to declare variables as int, double, double[], etc. For additional information on functions, please see other, more complete references. Naming Functions and Scripts. Matlab is case sensitive both in terms of variables, and with respect to the names of functions and script files. As mentioned above, these should all have names of the form: 7

FunctionName.m or ScriptName.m Matlab has a lot of built in functions available for your use. For example, if you want to find the roots of a polynomial, there is a function available for this purpose you don t need to write your own. To find out more about this function, use the help command: >> help roots All Matlab functions are named with lower case letters. If you write a function with the same name, Matlab has a way of choosing which function to use. To be sure that you (or Matlab) don t get confused over which one to use, you might include some upper case letters in your function name. For example, if you wanted to name a function roots, you might use Roots.m instead of roots.m. Example: Suppose that the concentration of spores of pollen per square centimeter are measured over a 15 day period, resulting in the following data: day 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 pollen count 12 35 80 120 280 290 360 290 315 280 270 190 90 85 66 (a) We first write a function that will have as input a vector of data, and return as output the mean and standard deviation of the given data. Matlab has several built-in functions for doing statistical analysis. For example, we can use mean and std to compute the mean and standard deviation. Therefore, our function is very simple: function [m, s] = GetStats(x); Compute the mean and standard deviation of entries in a vector x. Input: x - vector (either row or column) Output: m - mean value of the elements in x. s - standard deviation of the elements in x. m = mean(x); s = std(x); 8

(b) We now write a script to generate and display a statistical analysis of the pollen data: Script: PollenStats This script shows a statistical analysis of measure pollen counts on 15 consecutive days. p is a vector containing the pollen count for each day. d is a vector indicating the day (1 -- 15). p = [12 35 80 120 280 290 360 290 315 280 270 190 90 85 66]; d = 1:length(p); Get statistical data, and produce a plot of the results. [m, s] = GetStats(p); bar(d, p, b ) xlabel( Day of Measurement ) ylabel( Pollen Count ) hold on plot([0, 16], [m, m], r ) plot([0, 16], [m-s, m-s], r-- ) plot([0, 16], [m+s, m+s], r-- ) text(16, m, <-- m ) text(16, m-s, <-- m - s ) text(16, m+s, <-- m + s ) hold off We run the script simply by entering the following command: >> PollenStats 9

Getting Help. Matlab has two useful commands for getting help: The doc and help commands can be used to get some basic help on how to use a Matlab function. For example, if we want to know how to use Matlab s plot command, we can use either: or >> doc plot >> help plot The difficulty with either of these commands is that we have to know that there is a function with the name plot. For example, suppose we try: >> help polynomial Matlab will respond with a message saying there are no functions called polynomial.m. But Matlab is a sophisticated package, so there must be some functions that can be used to manipulate polynomials. How do we find these functions? One way is to use the lookfor command, which searches for functions that reference key words. So we can try: >> lookfor polynomial and see what is found. 10