ARRAY VARIABLES (ROW VECTORS)

Similar documents
ELEMENTARY MATLAB PROGRAMMING

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

EE 301 Signals & Systems I MATLAB Tutorial with Questions

How to learn MATLAB? Some predefined variables

EGR 111 Introduction to MATLAB

Matlab notes Matlab is a matrix-based, high-performance language for technical computing It integrates computation, visualisation and programming usin

Dr Richard Greenaway

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

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

Introduction to Matlab

INTRODUCTION TO MATLAB

Class #15: Experiment Introduction to Matlab

1 Introduction to Matlab

MATLAB Tutorial Matrices & Vectors MATRICES AND VECTORS

Introduction to Engineering gii

Creates a 1 X 1 matrix (scalar) with a value of 1 in the column 1, row 1 position and prints the matrix aaa in the command window.

FreeMat Tutorial. 3x + 4y 2z = 5 2x 5y + z = 8 x x + 3y = -1 xx

Math 7 Elementary Linear Algebra PLOTS and ROTATIONS

PART 1 PROGRAMMING WITH MATHLAB

MATLAB Tutorial III Variables, Files, Advanced Plotting

A very brief Matlab introduction

SF1901 Probability Theory and Statistics: Autumn 2016 Lab 0 for TCOMK

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

17 USING THE EDITOR AND CREATING PROGRAMS AND FUNCTIONS

Introduction to MATLAB

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

University of Alberta

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

A. Matrix-wise and element-wise operations

2.0 MATLAB Fundamentals

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

Math 2250 MATLAB TUTORIAL Fall 2005

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

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

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

Getting Started with MATLAB

Mathematical Operations with Arrays and Matrices

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

A very short introduction to Matlab and Octave

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

MATLAB QUICK START TUTORIAL

Matlab Introduction. Scalar Variables and Arithmetic Operators

OUTLINES. Variable names in MATLAB. Matrices, Vectors and Scalar. Entering a vector Colon operator ( : ) Mathematical operations on vectors.

A/D Converter. Sampling. Figure 1.1: Block Diagram of a DSP System

AMS 27L LAB #2 Winter 2009

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

The value of f(t) at t = 0 is the first element of the vector and is obtained by

EEE161 Applied Electromagnetics Laboratory 1

An Introduction to Numerical Methods

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

Introduction to Matlab

Dr Richard Greenaway

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

Laboratory 1 Octave Tutorial

Introduction to MatLab. Introduction to MatLab K. Craig 1

A Guide to Using Some Basic MATLAB Functions

MATLAB Programming for Numerical Computation Dr. Niket Kaisare Department Of Chemical Engineering Indian Institute of Technology, Madras

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

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

Introduction to MATLAB Practical 1

Introduction to Matlab

Introduction to Octave/Matlab. Deployment of Telecommunication Infrastructures

Getting Started with MATLAB

AN INTRODUCTION TO MATLAB

UNIVERSITI TEKNIKAL MALAYSIA MELAKA FAKULTI KEJURUTERAAN ELEKTRONIK DAN KEJURUTERAAN KOMPUTER

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

Chapter 1 Introduction to MATLAB

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

An Introduction to MATLAB and the Control Systems toolbox Aravind Parchuri, Darren Hon and Albert Honein

Introduction to MATLAB

Table of Contents. Basis CEMTool 7 Tutorial

Lab. Manual. Practical Special Topics (Matlab Programming) (EngE416) Prepared By Dr. Emad Saeid

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

Numerical Methods Lecture 1

Introduction to MATLAB

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:

Excel R Tips. is used for multiplication. + is used for addition. is used for subtraction. / is used for division

Introduction to Matlab

Prof. Manoochehr Shirzaei. RaTlab.asu.edu

Introduction to Matlab

EE3TP4: Signals and Systems Lab 1: Introduction to Matlab Tim Davidson Ext Objective. Report. Introduction to Matlab

Finding, Starting and Using Matlab

Introduction to Scientific Computing with Matlab

1. Register an account on: using your Oxford address

PC-MATLAB PRIMER. This is intended as a guided tour through PCMATLAB. Type as you go and watch what happens.

MATLAB Project: Getting Started with MATLAB

MATLAB SUMMARY FOR MATH2070/2970

Math 144 Activity #4 Connecting the unit circle to the graphs of the trig functions

McTutorial: A MATLAB Tutorial

INTRODUCTION TO MATLAB PLOTTING WITH MATLAB

LAB 1: Introduction to MATLAB Summer 2011

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

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

4.7a Trig Inverses.notebook September 18, 2014

George Mason University ECE 201: Introduction to Signal Analysis Spring 2017

EE 350. Continuous-Time Linear Systems. Recitation 1. 1

Programming in Mathematics. Mili I. Shah

INTRODUCTION TO MATLAB, SIMULINK, AND THE COMMUNICATION TOOLBOX

Introduction to MATLAB Programming

CSE/Math 485 Matlab Tutorial and Demo

Transcription:

11 ARRAY VARIABLES (ROW VECTORS) % Variables in addition to being singular valued can be set up as AN ARRAY of numbers. If we have an array variable as a row of numbers we call it a ROW VECTOR. You can also think of array variables as physics vectors with each member being a component. But row vectors we can have many components not just 3 as in physics., % note: IN GENERAL USE remember FOR VARIABLE NAMES, MATLAB IS CASE SENSITIVE! %we usual use lower case for basic variables and upper case for Matrices we will study later. % We use the brackets [ ] to indicate the range of values in the row vector. For examples >> A=[3,5] A = 3 5 >> velocity = [23.4 45.3-9.8] velocity = 23.4000 45.3000-9.8000 % MATLAB shows us these row vectors as a row of their values. % A four component array follows >> r = [1 2 3 4] r = 1 2 3 4 ARRAY OPERATORS SIMILAR TO SCALAR BUT WITH DIFFERENT RULES FOR ROW VECTORS AND MATRICES We first explore Element by Element operations ON ROW VECTORS That is, when performed each member of the array is acted on with the operator. These are + -.*./.^ >>A =[3 6 8 ] ; >> B =[2 3 4]; If just using a scalar on an array its an element by element operation and scalar operators are ok as in >>C = 2 *A C = 6 12 16 >>C= A / 2 C = 1.5000 3.0000 4.0000 Equivalent to using the array operators which is redundant in this case >>C= 2.* A C = 6 12 16 >>C =A./ 2 C = 1.5000 3.0000 4.0000 But operation between arrays have specific meaning if an element by element effect is needed than one must use the array operators as follows >>D= A + B D = 5 9 12 >>D= B- A D = -1-3 -4

12 >>E= A.* B E = 6 18 32 NOTE: if one summed the three values then this is equivalent to the DOT PRODUCT of two vectors in Math Or sum(e) =56 MATLAB also provides the sum of the dot product from the function dot() >>SumAB = dot(a,b) SumAB = 56 We know from math A B = A B cosθ SUPPOSE WE WANT THE ANGLE? Then we need acos θ = (A B )/ A B A A and B A B in divisor are magnitudes. The magnitude of a vector is gotten by the Pythagorean technique which means we would have to square the components and then add them and take the square root. This is easily done by first consider the array operator.^ which acts on each component >>G =A.^2 G = 9 36 64 Summing the components which are the squares of the original vector and taking the square root gives us the magnitude of the vector. Using MATLAB functions. >>MagG=sqrt(sum(G)) MagG = 10.4403 So putting all this together gives us the angle (in radians) as follows >>Angle =acos(sum(a.*b) / (sqrt(sum(a.^2)) * sqrt(sum(b.^2)))) Angle = 0.0890 (radians) Or in degrees >>angledeg =Angle*180/pi angledeg = 5.1022 degrees Think about these dot calculations and be sure you understand the approach. MATLAB offers other ways to do the latter. IF YOU TRY SCALAR OPERATIONS ON VECTORS YOU GET AN ERROR MESSAGE THAT WILL MAKE MORE SENSE LATER (UNLESS YOU UNDERSTAND MATRIX MULTIPICAITON). >> E=A*B Error using * Inner matrix dimensions must agree E= A * B is not ok with two row vectors here (later with matrices it will be, provide the dimensions of the matrices are proper) Errors will also happen if you use the other scalar operator A/B A^2 on row vectors Which can be used when we define the array variables called matrices and even then there are special matrix operations that are invalid. The latter is because the area in mathematics that was developed for matrices has very specific operation which MATLAB provides. Finally we can also do element by element division as follows. Note again the use of./ >>F = A./ B

13 F = 1.5000 2.0000 2.0000 an element by element division! Be sure to check simple examples when using these operators! Some additional Illustrations % if we want to raise each value of the vector to a power, we can also use power (a,b) a is vector, b the power. Consider again % the four component row vector >> r = [1 2 3 4] r = 1 2 3 4 z=power(r,3) z= 1 8 27 64 % Try z=r.^3 % In addition to generating a row vector with the brackets [ ] we can have MATLAB generate a multivalued vector useful for representing an independent variable or even a dependent one. For example: A row vector all the x axis values we will use to solve some function to get our y axis values. % We illustrate with an x range of from -4 TO +4 WITH A STEP OF 0.1 between each of the x values. % NOTE use of : (colon) in the definition of this multivalued vector >> x = -4:.1:4 x = Columns 1 through 7-4.0000-3.9000-3.8000-3.7000-3.6000-3.5000-3.4000... Columns 22 through 28-1.9000-1.8000-1.7000-1.6000-1.5000-1.4000-1.3000... Columns 57 through 63 1.6000 1.7000 1.8000 1.9000 2.0000 2.1000 2.2000... Columns 78 through 81 3.7000 3.8000 3.9000 4.0000 % NOTE ALL 81 COMPONENTS WERE NOT SHOWN HERE % MATLAB shows us the components in one long row. Since all values cannot be seen in one line, each position is labeled as a Column. % Once we have the independent variable we can use MATLAB supplied functions such as sin(),sinh(),log10() etc., to obtain corresponding y = f(x) values for simple functions or functions we need that are combinations of the basic ones. % For Example, using the above x values we can generate y = sin(x) values % for each x value by simply stating sin(x) which is an element by element evaluation of the sin() >> y = sin(x) y = Columns 1 through 7 0.7568 0.6878 0.6119 0.5298 0.4425 0.3508 0.2555... Columns 22 through 28-0.9463-0.9738-0.9917-0.9996-0.9975-0.9854-0.9636... Columns 57 through 63 0.9996 0.9917 0.9738 0.9463 0.9093 0.8632 0.8085... Columns 78 through 81-0.5298-0.6119-0.6878-0.7568 % We have just generated another vector variable whose 81 components are the given function ( sine in this case) of each of the components of the independent variable 'x'. % As we generate values they are kept in memory by MATLAB.

14 GRAPHING We now have y=sin(x) and x values in memory at this point. Now we can use the MATLAB plot() function to get a graph of x versus our f(x) (= 'y' here). % The plot appears in another window called the graphics window. Tapping any key (space bar is convenient) will exit back to the command window. % Doing the following. >> plot(x,y) % Generates the plot (graph) below In a FIGURE WINDOW that includes numerous graphical tools in the bar at the top. The figure window can be printed by clicking on FILE and choosing print options; Numerous options to label and modify the graph are in the menus in the Figure window. Try in the Insert menu to figure out what options were used below to polish the image. Check out some of the other options, by just exploring them for fun! % We note that MATLAB automatically scales the axis. We will explore later more controls of graphic options. %MATLAB provides a number of different plotting options for engineers and scientist that are well known in the various STEM fields. (examples: log vs linear, log vs log plots). % Multple functions can be plotted in the same graph with the plot() function. An example follows. >> z= cos(2*x+30);. >> plot(x,y,x,z); creates the following:

15 CREATING A TABLE WITH THE TRANSPOSE OPERATOR %Since tables are columns of data we can use the transpose operator to transform how data is seen and also treated in memory. This operator plays an important part in Matrix theory which we will see later on. Given a row vector we transform it with the transpose operator as a column vector. These latter vectors also play an important role in Matrix theory. So when we output from a column vector the data lines up as a column which forms the basis of creating a table. Consider the row vector >> z=1:5 z= 1 2 3 4 5 THIS IS A MATRIX OF 0NE ROW AND 5 COLUMNS The transpose is just using a single quote on the row vector variable, as x >> z' ans = 1 2 3 4 5 THIS IS A MATRIX OF 1 COLUMN AND FIVE ROWS Now consider the row vector w >> w=-10:5:10 w = -10-5 0 5 10 A table of both z and w can be created using braces and the transpose of the row vectors as follows M =[ z w ] which is useful when we want to create a of tabulate data in our programs. We are creating this way a matrix, M, in this case has five row and two columns whose output will give us a table of values. We say M is a 5 by 2 or 5 X 2 matrix that looks like >> M=[z' w'] M = 1-10 2-5 3 0 4 5 5 10 MEMORY INQUIRY % It is useful to know at times what variables are being kept in the memory. We obtain this answered with the 'who' command >> who Your variables are: r velocity x y. % More detail about the variables in memory is gotten with 'whos' >> whos Name Size Bytes Class Attributes r 1x4 32 double velocity 1x3 24 double x 1x81 648 double y 1x81 648 double % We note that the Size of a variable is expressed in matrix form. Namely all of the variables above are on one row with variable column numbers corresponding to the number of components of our row vectors. We can, in addition, think of our row vectors (called arrays in MATLAB) as a Matrix with one row.

16 Recall a Byte is the number of 8 bit binary units that mean something, numbers in memory are represented by zero s and ones in binary numerical value (8 at a time or 1 bite ex. 10101101 and alphabet and numbers not used for calculations, called alphanumerics, have a code for each letter and number. The code is called ASCII as was seen in C++ on most computers except Main Frame ones. In the table Bytes: is the number of bytes used per number so for example r has 4 numbers whose total bytes used are 32. So it must be that 8 bytes are a double Class, the more bytes used the greater number of significant digits kept. %REMINDER: IN WRITING EXPRESSION FOR ROW VECTORS(ARRAYS) WE MUST USE A PERIOD '.' WITH OPERATORS AS IN.* AND./ AND.^ FOR ELEMENT BY ELEMENT MULTIPLICATION, DIVISION AND EXPONENTIATION. %

17 LABORATORY TASKS Notes: command clear will clean the memory of all values and is useful for the following Placing a semi colon ; at the end of a line suppresses MATLAB echo of all values when you define a variable or vector so it is easier to collect the source code to hand in with each task. PRINT THE GRAPH in tasks 8-14 AND SUCCESSFUL COMMANDS (SOURCE CODES) OF EACH OF THE FOLLOWING TASKS but before you print a graph after you generate it use the title option in tools to put your name as a unique heading on the graph. This is especially important when many students are printing graphs in the laboratory. Label the x and y axis with meaningful names that are appropriate to the functions you are graphing. Use ; on commands to suppress the MATLAB echo (unless needed) of many values when you print up your work on the functions to support your graph outputs. Hand in the graphs and the commands and functions and variables you defined with the graphs. 8. Generate the curve for y(t)=3t 2 + 2t -4.5 for t from 0 to 10 step.1 NOTE: The notation y(t) is mathematical not a MATLAB variable. 9. Generate the curve y1(t)=4sin(5πt) with t from -.4 to +.4 steps.01 Use the constant 'pi' for π which is well known to MATLAB when you write your expression. 10.(2 PTS) Generate the function y2(t)=8sin(3πt +π/2) with the same t vector as above (TASK #9) then plot simultaneously the two curves y1 AND y2. SOLUTION: This is done by noting that the MATLAB 'plot' function can be used as plot(x1,y1,x2,y2) for two functions y1 and y2 over the ranges x1 and x2. Both y1 and y2 use the same range there. See 'help plot'. 11. DIGITAL SIGNAL PROCESSING uses the summing of various sinusoidal curves to simulate real signals. Obtain the graph for the sum of the two sinusoids in the function y3(t)= 8sin20πt +8sin22πt for t from 0 to 2 with intervals of.01. Use 'pi'. 12. As a variation of 11 multiply the expression in 11 by the exponential function e -1.2t. The resulting plot will be an illustration of a signal that dampens out. (Reminder: 'e' is the exponential function 'exp' and each part is a vector and when multiplying the sum of sin() s and the exp(). 13. (3 PTS) Review the weather balloon problem we did with C++ where we had time going from 0 to 48 hours and generated the altitude and velocity of the balloon. Using the polynomial solutions generate the two curves you saw illustrated in the power point notes along with titles and labeled axis. Where t is in hours alt(t)= -0.12t 4 +12t 3-380 t 2 +4100t +220 in meters v(t)= -0.48t 3 +36t 2-760t +4100 m/hours but convert to m/sec for the graph values also generate a table of values from the row vectors you have created for alt and v only include a copy of the first 10 values of the table to show you did it as well as the work that was used. 14. In the illustrated graph of y=sin(x) above ( the graph in these notes). List the names of the options used to polish the graph in the menus found in the figure window? 15.(3 PTS) Given the vectors H=[34-56 23] and J =[9 12 26] fully set up and solve for the magnitude of each and the angle in degrees between the two vectors using dot product discussed in this lesson. 16. (2 PTS) Using the vectors H and J above find a. H 2 H H 2 b. Pushing our knowledge MATRIX MATH (Comment here). try J*H H*J J* H H *J (NO DOTS LAST TWO)