ppt

advertisement
What is the Matlab environment?
How can you create vectors ?
What does the colon : operator do?
How does the use of the built-in linspace
function differ from the use of the colon :
operator?
Readings: Matlab by Pratap Chapter 3
1-2
1) engineering visualization and computation software
• 2-D contour, histogram, line, mesh, polar, polygon
and scatter plots.
• 3-D line, mesh, polygon, scatter and wire
frame plots.
2) The “interactive environment” is user friendly.
3) MATLAB provides its own high-level language in which
users can extend the capabilities of MATLAB.
• C-like programming language
• Many user defined functions
3
MATLAB is interactive, if you type (without ; )
>> 2 + 3
The system responds with
ans =
5
“ans” is a built-in variable that contains the results of
the last evaluated expression that has not been assigned
to another variable.
e.g. if we type
>> 3 * 3
ans =
9
1-4
To suppress the screen output use a
semicolon:
>> 5 ^ 2; (“ ^ ” is the power operator, 5 raised to
the second power in this example)
>>
( no response from matlab)
To examine the current value of ans type
>> ans
ans =
25
1-5
All variables are created as array variables. For example,
>> x = 1.5;
(this is called an “assignment statement”)
creates a (1 x 1) array of type real and assigns the value
1.5 to x.
Variables only change values when you assign values to
them using an assignment statement.
To see the value of x type,
>> x
x=
RAM
x
1.5
1.5000
Variable names must begin with a character and are case
sensitive.
1-6
The variable to be “assigned” a value must be on the
left hand side of the assignment statement…
>> 1.5 = x;
(illegal “assignment statement”)
The above is illegal because “1.5” does not specify a legal
address in memory.
An assignment statement is not a “math” equation. For
example, the following sequence is legal in Matlab:
>> x = 2.0;
>> x = x + 1.0
x=
3.0000
1-7
The current environment for our computing session is
called the workspace.
We can have many variables and functions in our
workspace.
To see what variables we have, type
>> who
ans
x
For this session (up to now) the workspace contains two
variables ans and x. To see the size (number of rows and
columns) of these variables, type
>> whos
Name
Size
Bytes
Class
(Both x and ans are 1 x 1 arrays)
ans
1x1
8
double (we call these scalars)
x
1x1
8
double
(double refers to double precision)
1-8
(see p. 12 in Pratap for a list of these Matlab commands)
…
(extend a command that doesn’t fit on one line)
>>
save lab3 (saves all the workspace variables to the file lab3.mat)
>>
load lab3
>>
save
(uses default file matlab.mat)
>>
load
(uses the default file matlab.m at from the Unix pwd)
(loads the lab3.mat file from the Unix pwd)
9
(see p. 12 in Pratap for a list of these Matlab commands)
clc
>> clf
>>
% clears the command window
% clears the figure window
>>
clear var1 var2
>>
clear
>> exit
% clears only the variables var1 var2
% clears(deletes) all variables in the workspace
% exit Matlab
>>
quit
% same as exit
>>
what
% lists Matlab files
1-10
format options
(controls how numeric output is displayed)
(see p. 9 in Pratap for a list of these Matlab commands)
Examples-- two of the options are shown below:
>> x = 12.34567890123456789
x=
12.34567890123457
>> format short
>> x
x=
12.3457
>> format long e
>> x
x=
1.234567890123457e+01
1-11
In Matlab (for CS101) all data will be stored in arrays.
An array can represent a:
vector - size 1 x n (row vector with 1 row and n columns) or
n x 1 (column vector with n rows and 1 column)
matrix - any size m x n ( a table of m rows and n columns).
Conventions
Two arrays are defined to be equal if they are of the same
size and at each position, they have the same value.
The values in an array are called components or elements.
12
Some examples of vector quantities that occur frequently in
science and engineering problems are
• velocity
• acceleration
• force
• electric, magnetic, gravitational fields
• surface normal
For example, the three-dimensional components of a force
vector can be represented in Cartesian coordinates as
F = (Fx, Fy, Fz)
The xy coordinates in the plane correspond to a twodimensional "vector"
P = (x, y)
1-13
We can represent a vector either as a row vector or as
a column vector, depending on the application. E.g.,
Vv1 v2
 v1 


v3  or Vv2 
v3 
1-14
To create vector arrays in MATLAB type the following:
>> F1
= [1 2.5 3.5];
>> F2 = [-1.75, 2.75, 1.0e-1];
>> F3 = [1 2 ];
>> whos F1 F2 F3
Name
F1
F2
F3
Size
1x3
1x3
1x2
Bytes
24
24
16
(The use of the “ , ” operator is optional)
Class
double
double
double
F1 and F2 are 1 row x 3 column arrays and F3 is a 1 row x 2
column array.
To display their values type the variable name:
>> F1
F1 =
1.0000 2.5000 3.5000
1-15
To create column-vector arrays in MATLAB either use the
semi-colon operator ; or use the transpose operator ‘
>> F1
= [1 ; 2.5; 3.5]; ( ; means ... append to next row)
>> F2 = [-1.75, 2.75, 1.0e-1] ‘ ; (transpose changes row vector to
column vector and vice-versa )
>> F3
= [ ]; (empty vector)
>> whos F1 F2 F3
Name
F1
F2
F3
>> F1
F1 =
Size
3x1
3x1
0x0
Bytes
24
24
0
Class
double
double
double
1.0000
2.5000
3.5000
1-16
The “ : ” (colon) operator is important in construction of
arrays
>> x
= 1:100;
>> y
= (-1 : 0.1 : 1)’;
>> z
z=
= 0 : 0.3 : 1
(creates a column vector with starting value -1 and
increments by 0.1 until 1 is reached but not exceeded)
0
>>
(creates a 1x100 row vector with values 1,2,3,4, … 100)
0.3000 0.6000 0.9000
z = 5 : -1 : 2
z=
5
4
3
2
1-17
Use (parenthesis) to select a subset of the elements of an array.
>> x
= [10 9 8 7];
>> y = [3; 4; 5];
>> z = x(2)
(note the use of parenthesis and not the brackets)
z=
9
>>
z=
(subscripting x does not change x)
z = x(1:3)
10
>> x
x=
9
= x(2:3)
9
>> z
z=
(note the use the colon operator)
8
(now x has changed)
8
= y(1:2)
3
4
1-18
Use the end function to obtain the last element in a vector.
Example:
>> x
= [10 9 8 7];
>> y = [3; 4; 5];
>> z = x(end)
z=
7
>>
z=
z = y(2:end)
4
5
1-19
Use subscripting to change the value of a vecor.
Example:
>> x
= [10 9 8 7];
>> y = [3; 4; 5];
>> x([2, 3]) = 5
x=
10
>>
y=
5
y(2:end) = [ 6 7]
5
7
% y(2:end) = [6 ; 7] works too
3
6
7
1-20
The built-in Matlab function linspace (see p. 72)works in a
similar manner to the colon operator “ : ” .
linspace(a,b,N) creates a row vector of N equally spaced
values starting at a and ending at b. This is equivalent to
a : (b-a)/(N-1) : b
Example:
Create a row vector named vec1 of 4 elements starting at -1
and ending at +1.
>> vec1 = linspace(-1,1,4)
vec1 =
-1.0000
-0.3333
0.3333
1.0000
1-21
Example:
Create a row vector named vec2 of 4 elements each equal
to 7.
>> vec2 = linspace(7,7,4)
vec2 =
7
7
7
7
Example:
Create a row vector named vec3 with the values 5,4,3,2 .
>> vec3 = linspace(5,2,4)
vec3 =
5
4
3
2
1-22
-
+
(dot form)
add
sub
*
/
\
^
.*
./
.\
.^
mult
right div
left div
power
Rules for the valid operations(see p 57,58).
If A and B are vectors then it is not always true that
>>A op B
is defined when op is one of the operations in the table
above. A and B are called operands.
The size of an vector is its number of rows and columns.
When multiple operators are used in an expression , use the
rules of precedence.
*, / , \ , ^ have “special” meaning as we will consider...
1-23
A and B must be of the same size or a scalar.
>> A = [2 3 4] ;
>> B = 3;
>> A + B
ans =
5
6
7
>> B = [1 2 3] ;
>> A + B
ans =
3
5
7
1-24
F = resultant of
F1 =(Fx1 , Fy1)
F2 =(Fx2 , Fy2)
two forces
applied to an
object.
F = F1 + F2 = (Fx1 + Fx2, Fy1 + Fy2)
In Matlab:
>> F1
= [1 , -1.5];
>> F2 = [-1.75, 1.0e-1] ;
>> F = F1 + F2
F=
-0.7500 -1.4000
1-25
A and B must be of the same size or a scalar.
>> A = [2 3 4] ;
>> B = 3;
>> A - B
ans =
-1
0
1
>> B = [1 2 3] ;
>> A - B
ans =
1
1
1
1-26
In Cartesian coordinates, we can express the dot or scalar
product of two vectors as a matrix multiplication:
F  s   f1
f2
 s1 
f 3    s2  f1s1  f 2 s2  f 3 s3
 s3 
Physical Example: Work
done by a force F acting
through a displacement s
s = [1, 1, 1] ‘ ;
>> F1 = [1 2.5 3.5];
>> F1 * s
>>
ans =
7
F
s
surface
W Fs
(dot or scalar product)
1-27
In order for the scalar product of vectors A * B to be defined,
the number of columns in the row vector A must equal the
number of rows in the column vector B.
>> A = [2 3 4] ;
>> B = [1 ; 2 ; 3] ;
>> A * B
ans =
20
1-28
The size of A and B must be the same or either could be a
scalar .
>> A = [2 3 4] ;
>> B = [1 2 3] ;
>> A .* B
ans =
2
6
Note: the result is the
product of the individual
elements of the vectors.
12
For the other operators in the table on slide 1 - 23 , try to
determine what the operator does and the sizes for which
A op B is valid. We will consider the “ \ “ operator in the
future. (see section 5.1.1 in book)
1-29
To obtain help in using Matlab make sure the Help
window is open. To do this, click “Help” then “Product
Help”
If you know the name of a Matlab function or
command, click on the Search box and type in the
name of the function.
If you want to obtain a list of functions by category,
first, click “By Category”,
Download