This is a basic tutorial for the MATLAB program which is a high-performance language for technical computing for platforms:

Similar documents
Basic MATLAB Tutorial

PROGRAMMING WITH MATLAB DR. AHMET AKBULUT

EP375 Computational Physics

MATLAB. A Tutorial By. Masood Ejaz

Chapter 3. built in functions help feature elementary math functions data analysis functions random number functions computational limits

MATLAB Tutorial EE351M DSP. Created: Thursday Jan 25, 2007 Rayyan Jaber. Modified by: Kitaek Bae. Outline

MATLAB Basics EE107: COMMUNICATION SYSTEMS HUSSAIN ELKOTBY

Introduction to PartSim and Matlab

Introduction to Octave/Matlab. Deployment of Telecommunication Infrastructures

Introduction to MATLAB

Introduction to Engineering gii

Finding, Starting and Using Matlab

Introduction to GNU-Octave

A very brief Matlab introduction

Introduction to MATLAB Practical 1

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

Introduction to Matlab

Programming in Mathematics. Mili I. Shah

A Guide to Using Some Basic MATLAB Functions

PART 1 PROGRAMMING WITH MATHLAB

Introduction to MATLAB

What is MATLAB? What is MATLAB? Programming Environment MATLAB PROGRAMMING. Stands for MATrix LABoratory. A programming environment

Starting Matlab. MATLAB Laboratory 09/09/10 Lecture. Command Window. Drives/Directories. Go to.

Introduction to MatLab. Introduction to MatLab K. Craig 1

A very short introduction to Matlab and Octave

A Short Introduction to Matlab

Introduction to MATLAB

Constraint-based Metabolic Reconstructions & Analysis H. Scott Hinton. Matlab Tutorial. Lesson: Matlab Tutorial

Experiment 1: Introduction to MATLAB I. Introduction. 1.1 Objectives and Expectations: 1.2 What is MATLAB?

Chapter 1 Introduction to MATLAB

Introduction to Matlab

Introduction to Matlab

1 Introduction to Matlab

Dr Richard Greenaway

Introduction to Matlab

TECH TIP VISION Calibration and Data Acquisition Software

Stokes Modelling Workshop

Part V Appendices c Copyright, Todd Young and Martin Mohlenkamp, Department of Mathematics, Ohio University, 2017

workspace list the variables and describe their matrix sizes 4x1 matrix (4 rows, 1 column) x=[3.4, 7, 2.2] 1x3 matrix (1 row, 3 columns)

MATLAB Lesson I. Chiara Lelli. October 2, Politecnico di Milano

Programming in MATLAB

Laboratory 1 Octave Tutorial

AMS 27L LAB #2 Winter 2009

Introduction to MATLAB

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

MATLAB TUTORIAL WORKSHEET

How to learn MATLAB? Some predefined variables

1.1 ABOUT MATLAB and MATLAB GUI (Graphical User Interface)

EGR 111 Introduction to MATLAB

Chapter 2. MATLAB Basis

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

2.0 MATLAB Fundamentals

UNIVERSITI TEKNIKAL MALAYSIA MELAKA FAKULTI KEJURUTERAAN ELEKTRONIK DAN KEJURUTERAAN KOMPUTER

Introduction to MATLAB LAB 1

MATLAB BASICS. < Any system: Enter quit at Matlab prompt < PC/Windows: Close command window < To interrupt execution: Enter Ctrl-c.

To start using Matlab, you only need be concerned with the command window for now.

Digital Image Analysis and Processing CPE

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

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

A Brief Introduction to MATLAB

What is a Function? EF102 - Spring, A&S Lecture 4 Matlab Functions

Matlab Programming Introduction 1 2

MATLAB NOTES. Matlab designed for numerical computing. Strongly oriented towards use of arrays, one and two dimensional.

1. Register an account on: using your Oxford address

McTutorial: A MATLAB Tutorial

Introduction to MATLAB

What is Matlab? The command line Variables Operators Functions

Introduction to Python Practical 1

Math 375 Natalia Vladimirova (many ideas, examples, and excersises are borrowed from Profs. Monika Nitsche, Richard Allen, and Stephen Lau)

Introduction to Matlab. Matlab variable types. Matlab variable types. Matlab variable types. Notes. Eugeniy E. Mikhailov. Lecture 02. Notes.

Lab 1 - Worksheet Spring 2013

EE 301 Signals & Systems I MATLAB Tutorial with Questions

AN INTRODUCTION TO MATLAB

MATLAB SUMMARY FOR MATH2070/2970

Introduction to MATLAB for CSE390

Getting Started with Matlab

Introduction to MATLAB Programming

ARRAY VARIABLES (ROW VECTORS)

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

LAB 1 General MATLAB Information 1

A QUICK INTRODUCTION TO MATLAB

Introduction to MATLAB. Computational Probability and Statistics CIS 2033 Section 003

MATLAB QUICK START TUTORIAL

A QUICK INTRODUCTION TO MATLAB. Intro to matlab getting started

Outline. CSE 1570 Interacting with MATLAB. Starting MATLAB. Outline (Cont d) MATLAB Windows. MATLAB Desktop Window. Instructor: Aijun An

Outline. CSE 1570 Interacting with MATLAB. Starting MATLAB. Outline. MATLAB Windows. MATLAB Desktop Window. Instructor: Aijun An.

INTRODUCTION TO MATLAB, SIMULINK, AND THE COMMUNICATION TOOLBOX

Lab of COMP 406. MATLAB: Quick Start. Lab tutor : Gene Yu Zhao Mailbox: or Lab 1: 11th Sep, 2013

Welcome to EGR 106 Foundations of Engineering II

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

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

AMS 27L LAB #1 Winter 2009

Lecture 2: Variables, Vectors and Matrices in MATLAB

Lecturer: Keyvan Dehmamy

An Introduction to MATLAB II

1 Week 1: Basics of scientific programming I

Variable Definition and Statement Suppression You can create your own variables, and assign them values using = >> a = a = 3.

Matlab Tutorial for COMP24111 (includes exercise 1)

Getting started with MATLAB

Starting MATLAB To logon onto a Temple workstation at the Tech Center, follow the directions below.

Transcription:

Appendix A Basic MATLAB Tutorial Extracted from: http://www1.gantep.edu.tr/ bingul/ep375 http://www.mathworks.com/products/matlab A.1 Introduction This is a basic tutorial for the MATLAB program which is a high-performance language for technical computing for platforms:. Linux Windows Mac OS MATLAB integrates computation, visualization, and programming in an easy to use environment where problems and solutions are expressed in familiar mathematical notation. Typical uses include Math and calculations Algorithm development Symbolic and numeric computations Scientific and engineering graphics Simulations Data modeling Data acquisition Data analysis 22

APPENDIX A. BASIC MATLAB TUTORIAL 23 A.2 Basic Commands help command get help for a command. i.e. help fzero. clear clears all variables in the memory (workspace). whos lists all the variables (and details) on the workspace. Semicolon (;) at the end will suppress the output Command history: upper and lower arrow keys on keyboard calls the previous commands. A.3 Predefined Constants The number π >> pi ans = 3.1416 The number e >> e ans = 2.7183 The virtual number i >> i ans = 0 + 1i A.4 Formatting Output There are three ways: >> format short >> pi ans = 3.1416 >> format long >> pi ans = 3.141592653589793 >> format rat >> pi ans = 355/113

APPENDIX A. BASIC MATLAB TUTORIAL 24 A.5 Variables A variable is a symbolic name indicating a location in your computer s memory where you can store a value which can later be retrieved. In MATLAB, if you don t use a variable name, your calculation is labeled and assigned by ans variable. >> 3 + 4.5 ans = 7.5 You can store the result another variable. >> a = 3 + 4.5 a = 7.5 Another example >> g = 9.8; >> t = 1.2; >> h = 0.5 * g * t^2 h = 7.0560 MATLAB allows you to define complex numbers. For example, the following commands will evaluate the magnitude of a complex number: >> z = 3 + 4i z = 3 + 4i >> m = abs(z) m = 5 Many built-in functions, such as sqrt(), log(), can be used for real and complex calculations: >> c = sqrt(-5) c = 0.00000 + 2.23607i >> d = sqrt(4+4i) d = 2.1974 + 0.9102i >> k = log(i) k = 0.00000 + 1.57080i >> q = log(-7) q = 1.9459 + 3.1416i

APPENDIX A. BASIC MATLAB TUTORIAL 25 A.6 Some Built-in Functions and Operators Function Description Example sin(x) sine of x (x is in radian) sin(0.1) = 0.0998 cos(x) cosine of x (x is in radian) cos(0.1) = 0.9950 tan(x) tangent of x (x is in radian) tan(0.1) = 0.1003 sind(x) sine of x (x is in degrees) sind(30) = 0.5000 cosd(x) cosine of x (x is in degrees) cosd(30) = 0.8660 tand(x) tangent of x (x is in degrees) tand(30) = 0.5774 asin(x) angle in radian from sin(x) asin(0.8)= 0.9273 acos(x) angle in radian from cos(x) acos(0.8)= 0.6435 atan(x) angle in radian from tan(x) atan(0.8)= 0.6747 asind(x) angle in deg. from sind(x) asind(0.8)= 53.13 acosd(x) angle in deg. from cosd(x) acosd(0.8)= 36.87 atand(x) angle in deg. from tand(x) atand(0.8)= 38.66 abs(x) x abs(-4) = 4.0000 log(x) ln(x) log(2) = 0.6932 log10(x) log 10 (x) log10(2) = 0.3010 exp(x) e x exp(2) = 7.3891 mod(x, y) x modulo y mod(12, 5) = 2 xˆy x y 10ˆ3 = 1000 1e+3 10 3 1e+3 = 1000 1e-3 10 3 1e-3 = 0.1000 A.7 Vectors An array or a vector is a group of objects, all of the same name and data type. The objects are called the elements of array and are indexed consecutively as 1, 2, 3,. In MATLAB, there are several ways to define arrays. One can use the column operator: >> a = 1:5 a = 1 2 3 4 5 >> a = 1:2:5 a = 1 3 5 >> a = 1:0.5:5 a = 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 Or use linspace() function. For example linspace(1,5,4) generates a row vector from 1 to 5 with 4 equal steps, that is:

APPENDIX A. BASIC MATLAB TUTORIAL 26 >> a = linspace(1,5,4) a = 1.0000 2.3333 3.6667 5.0000 >> a = linspace(1,5,5) a = 1 2 3 4 5 Alternatively you can directly input each element. >> a = [1 2 3 4 5] a = 1 2 3 4 5 >> g = [3 4 5 12 13 30 40 50]; >> g(4:end) ans = 12 13 30 40 50 All commands above generate the row vectors. One can convert a row vector to a column vector as follows: >> v = [3.1 4.5-7.2] a = 3.1000 4.5000-7.2000 >> v ans = 3.1000 4.5000-7.2000 Hence is v is a row vector, then v is its transpose. Here is the another example: >> a = [1 2 3] a = 1 2 3 One can join two column vectors to for a matrix as follows: >> a = [2 4 6]; >> b = [1 3 5]; >> M = [a b ] M = 2 1 4 3 6 5 In many applications, we need to perform some operations on two or more vectors. The following is an example for addition and subtraction of two vectors.

APPENDIX A. BASIC MATLAB TUTORIAL 27 >> a = [2 4 6]; >> b = [1 3 5]; >> c = a + b c = 3 7 11 >> d = a - b d = 1 1 1 On the other hand, we may need product (multiplication) of vectors. The following operation is not valid for two row vectors: >> a = [2 4 6]; >> b = [1 3 5]; >> a*b Error: inner matrix dimensions must agree. However, one can perform a scalar (dot) product of two vectors as follows >> a * b ans = 44 In MATLAB, there is an alternative vector product known as element-wise multiplication. >> a = [2 4 6]; >> b = [1 3 5]; >> a.* b ans = 2 12 30 Similarly, element-wise division and element-wise power are also available. >> a./ b ans = 2.0000 1.3333 1.2000 >> a.^ b ans = 2 64 7776

APPENDIX A. BASIC MATLAB TUTORIAL 28 A.8 Basic Statistics With Vectors >> x = [1 2 2.5 3.1 3]; >> length(x) ans = 5 >> sum(x) ans = 11.6000 >> mean(x) ans = 2.3200 >> std(x) ans = 0.8585 >> min(x) ans = 1 >> max(x) ans = 3.1000 >> [value index] = max(x) value = 3.1000 index = 4 A.9 Matrices In MATLAB, any variable can be considered as a matrix. A scalar is 1 1 matrix, while a row vector of size n is n 1 matrix and etc. A 2 3 matrix can be defined simply as follows: >> M = [1 2; 3 4; 5 6] M = 1 2 3 4 5 6 and a 3 3 matrix may be: >> B = [1 2 3; 0 5 6; 7 8 9] B = 1 2 3 0 5 6 7 8 9

APPENDIX A. BASIC MATLAB TUTORIAL 29 There are some basic functions to work with matrices: >> B = [1 2 3; 0 5 6; 7 8 9]; >> det(b) ans = -24 >> inv(b) Ans = 0.1250-0.2500 0.1250-1.7500 0.5000 0.2500 1.4583-0.2500-0.2083 Consider two matrices tp multiply: [ ] 1 2 3 4 [ ] 0 1 8 5 >> M = [1 2; 3 4]; >> N = [0 1; 8 5]; >> M * N ans = 16 11 32 23 A.10 Special Matrices >> P = zeros(2,2) P = 0 0 0 0 >> P = zeros(2,1) P = 0 0 >> Q = ones(2,2) Q = 1 1 1 1

APPENDIX A. BASIC MATLAB TUTORIAL 30 >> I = eye(2) % unit matrix I = 1 0 0 1 >> rand(2,2) % random matrix ans = 0.73106 0.18139 0.98766 0.38966 A.11 Basic Plotting MATLAB has extensive plotting capabilities. Here we illustrate some basic commands for 2D and 3D plots. You can obtain the histogram of a collection of data via histogram function. Consider you have 10,000 random numbers taken uniformly from the range (0, 1). The distribution of this data can be plotted as follows: >> r = rand(10000,1); >> histogram(r,20); 600 500 400 300 200 100 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figure A.1: Histogram of 10000 uniform random numbers. A simple plot of bi-variate data is performed by the plot function.

APPENDIX A. BASIC MATLAB TUTORIAL 31 >> x = -3*pi:0.1:3*pi; >> y = sin(x)./x; >> plot(x,y) 1 0.8 0.6 0.4 0.2 0-0.2-0.4-10 -8-6 -4-2 0 2 4 6 8 10 Figure A.2: The output of above commands. There are many options for a plot. Here is a slightly advanced code which sets axis titles. >> x = -3*pi:0.1:3*pi; >> y = sin(x)./x; >> plot(x, y) >> xlabel( time (s) ) >> ylabel( speed (m/s) ) >> title( Speed vs time ) >> text(-9,0.8, Non-uniform motion ) >> grid on

speed (m/s) APPENDIX A. BASIC MATLAB TUTORIAL 32 1 Speed vs time 0.8 Non-uniform motion 0.6 0.4 0.2 0-0.2-0.4-10 -8-6 -4-2 0 2 4 6 8 10 time (s) Figure A.3: The output of above commands. A.12 M-files You can save all MATLAB commands that you have invoked in command window in an m-file. The m-file can be generated by edit command in MATLAB s command window (or from the File Menu). >> edit plot1.m This will open a file called plot1.m nt editor. Then, type the following in the editor and save it. x = -3*pi:0.1:3*pi; y = sin(x)./x; plot(x, y) xlabel( time (s) ) ylabel( speed (m/s) ) title( Speed vs time ) text(-9,0.8, Non-uniform motion ) grid on In command window, you can run the command as follows: >> plot1 Off course, this will create the same plot as in Figure A.2. You can write a program to input a data from keyboard as well. To do that, you can use input function. The following script (saved in avr.m) reads two numbers from keyboard and outputs their averages.

APPENDIX A. BASIC MATLAB TUTORIAL 33 a = input( Enter an integer: ); b = input( Enter an integer: ); c = (a+b) / 2; printf( Mean of %d and %d is %f\n,a,b,c); Output is: >> avr Enter an integer: 3 Enter an integer: 4 Mean of 3 and 4 is 7.500000 A.13 Functions A function is an object that accepts some inputs and then outputs a result depending on the inputs. In MATLAB general decleration of a function is: function [output_arguments] = fname(input_arguments) function block end Here, fname is the name of the function. input arguments and output arguments of the function must be seperated by commas. To make the function accessible to other programs units, it must be saved under the filename fname.m. The following function takes two sides of a right angle triangle and outputs the hypotenuse of the triangle. >> edit hipo.m function z = hipo(x,y) z = sqrt(x^2 + y^2); end Now we can use the function in command window as follows: >> hipo(3,4) ans = 5 A function may return more than one value. The following example converts a coordinate (x, y) specified in cartesian coordinate into polar coordinate, (r, θ) function [r,t] = car2pol(x,y) r = sqrt(x^2+y^2); t = atan(y/x); end

APPENDIX A. BASIC MATLAB TUTORIAL 34 >> car2pol(3,4) ans = 5 >> [radius, angle] = car2pol(3,4) radius = 5 angle = 0.9273 You can send/get a vector of values in a function. The following function takes a vector, and returns another vector. function r = fun(v) r = sqrt(abs(v) + 1.5)); end If your function block is short, then you can define it as an inline function. >> f = inline( x.^2 ); >> x = 1:5; >> plot(x,f(x)) A.14 Selection Control statements allow us to make decisions. In MATLAB, basic control (selection) statements are well known if, if... else and elseif statements. As listed below, there are several operators used in control structures. < less than <= less than or equal to > greater than >= greater than or equa to == equal to ~= not equal to & logical and logical or ~ logical not The following script (saved in evenodd.m) reads a number from keyboard and outputs a suitable message whether it is an even or odd number. x = input( Enter an integer: ); if mod(x,2) == 0 disp( This is an even number. ) else disp( This is an odd number. ) end

APPENDIX A. BASIC MATLAB TUTORIAL 35 In command window, an example run is given below: >> evenodd Enter and integer: 29 This is an odd number. A.15 Loops Loops are used to repeat a block of statements in a program. In MATLAB, the famous loop statements are while and for. Here there are two examples. while 1 disp( Hello Mars ); end x = rand(100,1); n = 0; for i = 1:length(x) if x(i) > 0.5 n = n + 1; end end p = n / length(x) A.16 Reading Data Files In most of the applications, experimental data are acquired by electronic devises and stored in a file. Consider you have data having two columns. First column is wavelength in nanometer and second is the intensity of light from an infrared source. First a few lines are given below. (You can download the file from course web page). 1.975717010e+002 1.283807331e-003 1.977733154e+002 5.922408891e-004 1.979749451e+002 1.192245516e-003 1.981765900e+002 7.430875557e-004 1.983782501e+002 1.193400705e-003 1.985799408e+002 6.572923739e-004... To read and plot this data is very simple in MATLAB. If the data file is stored as infrared.txt then:

Intensity APPENDIX A. BASIC MATLAB TUTORIAL 36 % read data and copy to vectors [w, I] = textread( infrared.txt ); % plot data plot(w,i, color, red, linewidth,2) xlabel( Wavelength ) ylabel( Intensity ) grid on 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 100 200 300 400 500 600 700 800 900 1000 1100 Wavelength Figure A.4: The light distribution of an IR source.

APPENDIX A. BASIC MATLAB TUTORIAL 37 A.17 Exercises 1. The average distance to the Sun is about 93 million miles. If the speed of light is about c = 3x10 8 m/s then how many minutes and seconds does it take Sun light to reach the earth? Solve this problem using MATLAB script. (Hint:1 mile is about 1.609 kilometers) 2. Write MATLAB script to evaluate the sum 1 1 + 1 1 + 1 1 3 5 7 9 10000001 with a for loop and time the computation using tic and toc. 3. Write a program to find the closest value of the number π = 3.141592653589793 obtained from a rational number of the form r = A/B where A and B are 3 digit integers. 4. Write a function named isprime(n) that returns 1 if n is a prime number and returns 0 otherwise. Example function call in MATLAB command line: >> x = isprime(3) x = 1 5. Write a function of the form rmaxval(x) to remove the largest element(s) from a vector x. Example call in command window: >> a = [1 2 5 0 0 5]; >> b = rmaxval(a) b = 1 2 0 0 6. Modify the program given in A.16 to get maximum intensity value and corresponding wavelength. See Figure A.4.