0% found this document useful (0 votes)
39 views

MATLAB Chapter 1

This document provides an overview of MATLAB including what it is, why it is useful, how to use basic commands and functions, variable management, and complex number operations. Key aspects covered include the MATLAB interface, entering commands, variables, built-in functions, and constants.

Uploaded by

awatef banout
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views

MATLAB Chapter 1

This document provides an overview of MATLAB including what it is, why it is useful, how to use basic commands and functions, variable management, and complex number operations. Key aspects covered include the MATLAB interface, entering commands, variables, built-in functions, and constants.

Uploaded by

awatef banout
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

Spring 2015

MATLAB Chapter 1
An Overview of MATLAB

MATLAB

MATLAB = MATrix LABoratory

 Extremely useful mathematical software


 Can be used as an advanced calculator/graphing tool
 Can be used as a powerful programming language

1
Spring 2015

Why use MATLAB?

 MATLAB is an easy introduction language for


programming.

 MATLAB provides a “quick-and-easy” development


environment.

 MATLAB is very useful in many engineering contexts.

 MATLAB is used in industry.

Programming with MATLAB

 Programming is a TRANSFERABLE SKILL


 Programming concepts are common for all languages
 Syntax may change, but usually similar

 MATLAB is and INDEPENDENT PLATFORM


 Can write software once for many Operating Systems

 MATLAB can be linked to other software


 C/C++, Fortran, etc…

2
Spring 2015

MATLAB in University/Industry

 MATLAB can be used to solve applied mathematical


models.

 MATLAB can be used to develop and analyze new


models. For example, in like
 Structural Analysis
 Electric Circuits Analysis
 Communication Systems
 Systems and Control

1.1 Starting Matlab

This window
shows the current
directory or the This is the
workspace command
This window window
shows the
command
history

3
Spring 2015

1.1 Entering Commands and Expressions

 You can enter expressions at the command line and


evaluate them right away.

previous >> 8/10


command
ans =
0.8000
next
command
>>

The >> symbols indicates where commands are typed.


7

1.1 Entering Commands and Expressions

 Matlab uses scientific notations for large numbers.

 Just like Excel, we use the notation “e” to represent


exponentiation
 Example: 5.316×102
In Matlab: 5.316e+02

4
Spring 2015

1.1 Variable

 Matlab has assigned the answer to a variable called


ans, which contains the most recent answer.

 ans can be used for further calculations.


 Example: >> 5*ans

ans =
4
>>
9

1.1 Variable

 You can also use variables >> temp1_a=50


of your own. temp1_a =
 Variables has to start with a
letter, can include numbers 50
and underscores: >>temp1_a/2
 For example: temp1_a can
be used as a variable. ans =
 Note: Matlab is case- 25
sensitive. >>
10

5
Spring 2015

1.1 Built-in functions

 Matlab has 100s of built-in functions. >> sqrt(9)


 Example: the square root
function ans =
 In Matlab: sqrt(x), where x can
e.g. be a number, a variable or
3
an array…
>>
 Attention: It is possible to assign
See Table 1.3-1 and Appendix A
variable names with built-in
for a list of commonly used
functions/ variables names, but it is functions
not practical to do so.

11

Appendix A

 Appendix A presents a quick guide to commands and


functions used in the textbook.

 Many tables seen in the chapters are found again in


Appendix A.

12

6
Spring 2015

1.1 Arithmetic operators

Operator MATLAB Example


 See Table 1.1-1 for more
information on operators.  + 5 + 4 = 9

 - 5 - 4 = 1
 See Table 1.1-2 for the
order of precedence.  * 5 * 4 = 20

 / 5 / 4 = 1.25

ab a^b 5^4 = 625

13

1.1 The Assignment Operator

 The = sign in Matlab is called the >> x=2


assignment operator. When you
type x=2, you are assigning the x =
value 2 to the variable x.
2

 In Matlab, it is however also >> x=x+2


possible to type x=x+2. This tells
Matlab to add the value 2 to the x =
current value of x, replacing the old
4
value of x and making the most
recent value of x=4. >>

14

7
Spring 2015

Example 1.1-1

 Volume of a circular
>> r=8;
cylinder:
>> h=15;
 Given radius r and >> V=pi*r^2*h;
height h and volume >> V=V+0.2*V;
V=pi*r^2*h of a cylinder, >> r=sqrt(V/(pi*h))
find radius of another
cylinder with the same r =
height and a volume
8.7636
20% greater.
 Notice: Using a semicolon >>
“;” after a command
removes screen printing. Notice that new values
of r and V replace old values
15

1.1 Managing the Work Session

 Variable names must begin with a letter and must


contain less than 32 characters.
 It is advisable to assign logical names to your variables:
e.g. speed, distance, temp_1, etc…
 Remember: Matlab is case-sensitive.

 Table 1.1-3 summarizes some commands and special


symbols for managing the work session: e.g. clc,
clear, quit, exist(‘name’), who, etc…

16

8
Spring 2015

1.1 Managing the Work Session

 Instead of retyping the entire line, press the up-arrow () and the
down-arrow () to recall previous commands you typed in your
session.

 Notice that commands are stored in the Command History Window.


Double-clicking on a command in the command history window
recalls this command automatically.

 If you go to Edit/Clear Command History, all previous commands


will be deleted (and can’t be recalled anymore)

17

1.1 Managing the Work Session

 Pressing tab while typing  auto


completes commands.
 Some useful commands:
 clear: clears all previous variables
 clear var1 var2: clears variables
var1 and var2.
 exist(‘var1’): checks if variable
var1 exist (returns 1 or 0)
 clc: clears screen
 who: lists all variables
 who var1 var2: lists var1 and var2
if they exist.
 who A*: lists all variables that start with
the letter A.
 whos: lists the variable names and their
sizes
18

9
Spring 2015

1.1 Predefined Constants


 Table 1.1-4: Special variables and constants
 Examples
 pi represents the number  
 Inf represents Infinity (number/0)
 NaN indicates an undefined numerical result (0/0)
 i,j represent the square root of –1,
necessary for complex numbers. Example
5+2i or 5+2j can be typed directly in Matlab.
 etc…

19

1.1 Complex Number Operation


>> s=3+7i;
>> w=5-9i;
>> w+s
 Matlab handles complex ans =
number algebra
8.0000 - 2.0000i
automatically. For example
>> w*s
c1= 1-2i (or 1-2*i).
ans =
 Caution: You CANNOT 78.0000 + 8.0000i
type 1-i2. >> w/s

ans =

-0.8276 - 1.0690i

>> (-3+7i)*(-3-7i)

ans =

58

20 >>

10
Spring 2015

1.1 Formatting Commands

 Table 1.1-5: Numeric display formats


Examples:
 format short Four decimal digits
 format long 16 digits
 format short e Five digits plus exponent
 etc…

21

1.2 Menus and the Toolbar

 Check out the Menu bar and the Shortcut Toolbar in


Matlab
 Notice: Depending which Window is selected, the Menu
Bar changes accordingly.

22

11
Spring 2015

1.3 Computing with Matlab Arrays

>> x=[0 1 2 3]
 Matlab can handle collections of
numbers, called arrays, as if they x =
were a single variable.
0 1 2 3

>> x=[0,1,2,3]
 Possible way to define an array
elements must be separated by a x =
comma or space (or both). 0 1 2 3

>>
 Order of elements is important.

23

1.3 Arrays
>> x=2:8

 It is not necessary to x =

type all the numbers in 2 3 4 5


the array if they are 6 7 8

regularly spaced. >> x=2:1:8

 The use of colon x =


indicates the spacing 2 3 4 5
and the length of the 6 7 8
array (only for real >> x=2:2:8
scalars).
x =
 By default, the spacing
2 4 6 8
 is 1.
>>

24

12
Spring 2015

1.3 Array Operations


 Simple array operations can be done like matrix operations:
>> x=0:3;
>> y=sin(x)

y =
0 0.8415 0.9093 0.1411 Note: Matlab
>> z=cos(x) trigonometric
functions use
z =
radian measure.
Using degrees can
1.0000 0.5403 -0.4161 -0.9900 be done by hand:
>> y+z cosine 60° is
cos(60*pi/180)
ans =

1.0000 1.3818 0.4932 -0.8489

>>
25

1.3 Arrays

 Array operations are done in Matlab mathematically correct. For


example, A*B results in a correct matrix multiplication, and not in an
element by element multiplication.

 However, Matlab enables also element by element operations. A dot


“.” before the operator must be used for that purpose.
 Examples:
 A.*B results in an element by element multiplication.
 Also, exponentiation and division operators must have a dot:
A.^2 results in squaring the single elements of the array A, and
A./B results in an element by element division.

26

13
Spring 2015

1.3 Arrays
>> x=0:3;
>> y=sin(x)

y =

0 0.8415 0.9093 0.1411

>> z=cos(x)

z =

1.0000 0.5403 -0.4161 -0.9900

>> y.^2+z.^2

ans =

1.0000 1.0000 1.0000 1.0000

>> y^2+z^2
??? Error using ==> mpower
Matrix must be square.

>>
27

1.3 Array Index

 You can see several values of an array by typing the


location or index of the value as follows:
>> x=-5:0.1:10;
>> x=-5:0.1:10;
>> x(151)
>> x(1)
ans =
ans =
10
-5
>> x(200)
??? Index exceeds matrix dimensions.
>> x(7)
>> x(0)
ans =
??? Subscript indices must either be real positive
integers or logicals.
-4.4000
>>
>>

28

14
Spring 2015

1.3 Array Index

 To know how many elements a vector has, use the


length command

>> x=0:0.1:10; Note: for the index, we can use:


>> length(x) x(1), x(2), …
or
ans = x(1,1), x(1,2), …

101 length actually computes either the


number of elements of an array if the array
>> is a line vector, or the largest value of m or n
if the array is an mxn matrix.

29

1.3 mxn Arrays


 One way to write an mxn array in Matlab, use semicolons “;” to
separate between rows: >> A=[1;3;5]
>> A=[1 2 4 5;5 -3 9 2]
A =
A =
1
1 2 4 5 3
5 -3 9 2 5

>> size(A) Here use >> A=[1+i;3i;2]


size(A)to
ans = A =
know array
2 4 dimension 1.0000 + 1.0000i
Index: mxn 0 + 3.0000i
2.0000
A= A(1,1) A(1,2)… >> length(A)
A(2,1) A(2,2)… ans = >> A=[1,2,4;2,4,5]

4 A =

1 2 4
30 2 4 5

15
Spring 2015

1.3 Polynomial Roots

 A polynomial can be described in Matlab >> roots([1,-7,40,-34])


with an array whose elements are the
ans =
polynomial coefficients, starting with the
coefficient with the highest power of x. 3.0000 + 5.0000i
 Use the roots command to solve for 3.0000 - 5.0000i
roots 1.0000

 Example: f(x) = 1x3  7x2 + 40x  34 = 0 >> poly([1,3-5i,3+5i])

ans =
 To find the polynomial from its roots, use
the function poly([root1,root2,…]) 1 -7 40 -34

>>

31

1.3 Working with files

 There are several types of files that enables you to save


programs, data, and session results. Most importantly
are:
 MAT-files
 M-files

32

16
Spring 2015

1.3 MAT-files

 If you want to stop using Matlab but continue the session


at a later time, you must use the save and load
commands.

 Typing save causes Matlab to save the workspace


variables in a file called matlab.mat.

 Typing load at a later time loads the variables that were


saved in the file matlab.mat.

33

1.3 MAT-files
 You can define your own MAT-file by using
 save filename and load filename
 The variables are then stored in the file filename.mat

 You can save only certain variables by using


 Save filename var1 var2

 Caution: If variables already exist in the workspace, they


are overwritten with the values of the variables from the
file filename.mat or matlab.mat.

34

17
Spring 2015

1.3 M-files

 To save a sequence of commands


for later use, commands can be
written in a script file called M-file.
 Go to File/New/M-file
 A text editor/debugger will open
where you can write your
commands just like in the
command window.

 Note: You can use any other text


editor to write your M-file, but the
Matlab editor has more practical
options.

35

1.3 Directories and Search Path

 It is important to know the location of the files you use


within Matlab. To open the files easily in Matlab, they
should be saved in a directory within Matlab’s “search
path”.
 To know if the directory is in the search path, type path
 To add or remove a directory from the search path, type
pathtool. This will take you to another path-setting
dialog-box

36

18
Spring 2015

1.3 Directories and Search Path

 If an M-file is saved in a directory within the search path


then loading this M-file can be done by directly typing its
name in the command window: filename

 To open an M-file, you can type open filename, or go


to File/Open and choose it.

37

1.3 Directories and Search Path

 Table 1.3-2 System, directory, and file commands


Examples
 dir lists all files in the current directory
 pwd displays the current directory
 pathtool starts the set path tool
 what lists all Matlab specific files (like MAT-
files) in the current directory
 etc…

38

19
Spring 2015

1.3 Plotting with Matlab

 Matlab contains many powerful functions for easily


creating plots of different types, such as rectilinear,
logarithmic, surface, and contour plots.

 Steps to make a simple plot


1. Define x-axes range (e.g. x=[0:0.1:10])
2. Define y=f(x) (e.g. y=sin(x))
3. Type plot(x,y)

>> x=0:0.1:10;
>> y=sin(x);
>> plot(x,y)
39

1.3 Plotting with Matlab

 The plot appears


on the screen in a
graphical window,
named
Figure1.fig,
which is a Matlab
file.

40

20
Spring 2015

1.3 Plotting with Matlab

 This Figure1.fig
file can be saved
under a different
name and format
for usage within
other programs
like MS Word.

41

1.3 Plotting with Matlab

 Table 1.3-3 Some Matlab plotting commands


Examples:
 grid puts grid lines on the plot
 title(‘text’) puts text in a title at the top of
the plot
 xlabel(‘text’) adds a text label to the x-axis
 ylabel(‘text’) adds a text label to the y-axix
 etc…

 Example:
plot(x,y),xlabel(‘time(s)’),ylabel(‘voltage(V)’),title(‘V vs. t’)

42

21
Spring 2015

1.3 Plotting with Matlab

 You can create multiple plots by including another set of values in the plot:
plot(x,y1,x,y2,x,y3)

 The function [x,y]=ginput(n), gets n points and returns the x and y


coordinates in the vectors x and y which have a length n. For example,
plot(x,y),[x,y]=ginput(2)

 Typing plot(x,y,’+’) will return a scatter plot without a line, where the
data points are represented by a “+” sign.

 Typing plot(x,y,’+-’) will return a scatter plot with data points


represented with + and connected by a line. (or plot(x,y,x,y,’+’))

 loglog(x,y), semilogx(x,y), and semilogy(x,y) creates


logarithmic plots. (see Appendix A for more special plot functions)
43

1.3 Linear Algebraic Equations

 We can solve simultaneous linear equation in Matlab


very easily using matrices. For example solving the
linear equation system:
6x + 12y + 4z = 70
7x – 2y + 3z = 5
2x + 8y – 9z = 64
>> A=[6,12,4;7,-2,3;2,8,-9];
>> B=[70;5;64];
>> Solution=A\B

Solution =

3
5
44 -2

22
Spring 2015

1.3 Statistics

 Matlab has number of useful statistical functions (not all


built-in) like mean, median, mode, std, var, min,
max…that work on vectors.
>> x=0:10; >> x=0:10;
>> min(x) >> mean(x)

ans = ans =

0 5

>> max(x) >> std(x)

ans = ans =

10 3.3166

45

1.4 Script Files and Editor/Debugger


Effective Use ofScript Files

 % is used to write
comments (will not be
compiled). Text color in M-
file editor after % is green.
 Semicolons “;” can be
used as usual.
 Filenames can be typed
directly in the command
window, if their directory is
in the search path.
 Writing type filename
in the command editor
displays the file in the See page 31-32 in TB on what to
command window. remember when using script files
46

23
Spring 2015

1.4 Debugging Script files

 Debugging means finding program “Bugs” or errors:


 Syntax errors: e.g. missing parenthesis or comma, …
 Runtime errors: e.g. dividing by zero,…
 Syntax errors are usually found by Matlab, and program will not run
until error is corrected. Runtime errors are however harder to locate.

 To run an M-file, file has first to be saved.


 To run and save automatically from editor:
 Press F5
 Go to Debug/Save and Run

 If due to a certain mistake, you would like to stop the program from
running, press
Ctrl+c
47

1.4 Controlling Input and Output

 Table 1.4-2 Input/Output commands


Examples
 disp(A) displays content, but not
the name of an array A.
 disp(‘text’) displays text string
enclosed in quotes.
 x = input(‘text’) displays text in quotes
imp
and waits for user to
 etc… input value for x.
 Example: T4.1-2
48

24
Spring 2015

1.5 Matlab Help System

 In the command window, you can type:


 help funcname
 lookfor funcname
 doc funcname
 etc…

 Go to the Help menu item in the Menu Bar.

 Table 1.5-1 Matlab Help functions

49

1.6 Programming in Matlab

 Table 1.6-1 Relational Operators


< less than
 <= less than or equal
> greater than
 >= greater than or equal
 == Equal to
 ~= Not equal to

 The result is either 1 (for true) or 0 (for false).


 This result can be used as a logical variable.
50

25
Spring 2015

1.6 Relational Operators

 With the relational operators, we can directly compare


variables: >> x=1;
>> y=2;
>> x==y

ans =

>> x='m';
>> y='m';
>> x==y

ans =

>>
51

1.6 Relational Operators


 We can compare arrays on an element-by-element basis:
>> x=[6,3,9]; >> A=[1,2,3;4,5,6];
>> y=[14,2,9]; >> B=[1,2,3;5,5,6];
>> z=(x<y) >> A==B

z = ans =

1 0 0 1 1 1
0 1 1
>> z=(x==y)
>> C=A~=B
z =
C =
0 0 1
0 0 0
>> z=x==y %another way to write it 1 0 0

z = >>

0 0 1

52

26
Spring 2015

1.6 Relational Operators

 Relational operators can also be used within arguments. For example


writing x(x<y) returns the elements of the array x which are less than y.

>> x=[2,3,1];
>> y=[1,2,5];
>> x(x>y)

ans =

2 3

>>

53

1.6 Relational Operators

 The find function: finds the NONZERO elements in an


array.
 Returns the indices not the element values
 This is useful when writing decision-making programs.

>> x=[1,2,9,0,3,0,3];
>> y=find(x)

y =
Only
1 2 3 5 7 indices are
returned.

54

27
Spring 2015

1.6 Conditional Statements IF-ELSE-ELSEIF

 Conditional statements allow us to write programs that make


decisions.
 We should pay attention to the order of expressions.
 We can write nested IFs by using the elseif statement.
 Syntax If expression
commands
elseif expression
If expression commands
commands elseif expression
else commands
commands …
end else
commands
55 end

1.6 Conditional Statements

1.6 Example 1.6-1

 Example: Write a program in Matlab to compute y(x) for


15 4x 10 if x  9

y(x)   10x 10 if 0  x  9
 10
 if x  0

56

28
Spring 2015

1.6 Conditional Statements

 Example: Write a program in Matlab to compute y(x) for


15 4x 10 if x  9

y(x)   10x 10 if 0  x  9
 10
 if x  0
%ifexample: Evaluation of y(x)
x=input('Enter the value of x: '); >> ifexample
if x>=9 Enter the value of x: 2
y=15*sqrt(4*x)+10
elseif x>=0 y =
y=10*x+10
else 30
y=10
end >>

57

1.6 Loops

 A loop is a structure for repeating a calculation an


number of times. There are two types of loops:

 for loop: used when the number of executions is


known ahead of time.

 while loop: used when the looping process must


terminate when a specified condition is satisfied, and
thus the number of executions is not known in
advance.

58

29
Spring 2015

1.6 Loops

 Syntax:

for expression while expression


commands commands
end end

Note: commands are executed in order

59

1.6 Programming in Matlab

 Table 1.6-2 Some Matlab programming statements


Examples:
 else Delineates an alternate block of
commands.
 if Executes commands conditionally
 etc…

60

30
Spring 2015

1.6 Loops

 for-loop example:
%first method %second method
m=0; m=1;
x(1)=10; x(m)=10;
for k=[2:3:11] for k=2:3:11
m=m+1; x(m+1)=x(m)+k^2;
x(m+1)=x(m)+k^2; m=m+1;
end end
x x

>> x

x =

10 14 39 103 224
61

1.6 Loops

 while-loop example:

%while loop example >> y


clear
x=5;
k=0; y =
while x<25
k=k+1; 15 27 51
y(k)=3*x;
x=2*x-1; >>
end
y

62

31
Spring 2015

1.6 Example 1.6-2

15 4x 10 if x  9

y(x)   10x 10 if 0  x  9
 10
 if x  0

Plot y(x) vs x for -5x30

63

1.6 Example 1.6-2


15 4x 10 if x  9

y(x)   10x 10 if 0  x  9
 10
Plot y(x) vs x for -5x30  if x  0
%Example 1.6-2: using for loop %Example 1.6-2: using while loop
clear clear
dx=35/300; dx=35/300;
x=[-5:dx:30]; x=[-5:dx:30];
k=1;
for k=1:length(x)
if x(k)>=9 while k<=length(x)
y(k)=15*sqrt(4*x(k))+10;
elseif x(k)>=0 if x(k)<0
y(k)=10*x(k)+10; y(k)=10;
else elseif (x(k)>=0)&&(x(k)<9)
y(k)=10; y(k)=10*x(k)+10;
end else
end y(k)=15*sqrt(4*x(k))+10;
plot(x,y),xlabel('x'),ylabel('y') end

k=k+1;
end
64 plot(x,y),xlabel('x'),ylabel('y')

32
Spring 2015

1.6 Example 1.6-3


 Compute sum of the 1st 15 terms in the series 5k 2-2k, for
k=1,2,…,15

65

1.6 Example 1.6-3


 Compute sum of the 1st 15 terms in the series 5k 2-2k, for
k=1,2,…,15
%Example 1.6-3: using for loop (TB) %Example 1.6-3: using the sum function
clear clear
total=0; k=1:15;
for k=1:15; y=5*(k.^2)-2*k;
total = 5*(k^2)-2*k + total;
end total2=sum(y)
total %it sums over all ys, i.e y(1)to y(15)

%Example 1.6-3: using for loop %Example 1.6-3: using while loop
clear clear
total1=0; total3=0;
k=1:15; k=1:15;
y=5*(k.^2)-2*k; y=5*(k.^2)-2*k;

for h=1:15 h=1;


total1 = total1 + y(h); while h<=15
end total3 = total3 + y(h);
total1 h=h+1;
end
66 total3

33
Spring 2015

1.6 Example 1.6-4


 Find how many terms it’s required for the sum of the series 5k2-2k,
for k=1,2,…to exceed 10000. What’s the sum of these many terms?

67

1.6 Example 1.6-4


 Find how many terms it’s required for the sum of the series 5k2-2k,
for k=1,2,…to exceed 10000. What’s the sum of these many terms?

k=0; >> Example_1_6_4


total=0; the number of terms is:
while total<=1e4 18
k=k+1;
total=5*k^2-2*k+total; the sum is:
end 10203
disp('the number of terms is:')
disp(k)
disp('the sum is:')
disp(total)

68

34
Spring 2015

1.6 Example 1.6-5


 Determine how long it will take to accumulate at least $10000 in a
bank account if you deposit $500 initially and 500$ at the end of
each year, if the account pays 5% annual interest

69

1.6 Example 1.6-5


 Determine how long it will take to accumulate at least $10000 in a
bank account if you deposit $500 initially and 500$ at the end of
each year, if the account pays 5% annual interest

%Example 6.1-5
clear
>> Example_1_6_5
amount=500;
years=0;
amount =
while amount<1e4
1.0789e+004
amount=amount*1.05+500;
%or amount=amount+500+amount*0.05
years=years+1;
end years =
amount
years 14

70

35

You might also like