Title: Intro to Matlab
1WELCOME
EF 105 Fall 2006 Week 10
2Topics
- Engineering Problem Solving
- Programming Logic
- Intro to MATLAB
3Engineering Problem Solving
- Define the problem clearly
- Work hand examples
- Develop the Algorithm (Steps to follow)
- Document the Algorithm with a FLOWCHART
- Implement the Algorithm (Write computer program)
- Test the Implementation (Run the Program)
- Evaluate the Results
4PROGRAMMING LOGICTop-Down Algorithm Development
- Divide and Conquer
- Break Problem into smaller tasks.
- Define the interaction between tasks.
- Recursively solve the individual tasks.
- Build up the overall solution from the pieces.
5Structured Programming
- Structured Programming
- Combination of
- Sequences
- Selections
- Loops
- Sequences
- Series of operations that are performed in order.
- Selections
- Choose one path from two or more possible paths.
- Loops
- Execute a block of code repeatedly as long as
some condition is met.
6Basic Flowcharting Elements
Arrows show the flow - cannot diverge but can
converge.
Execution Block
Selection Block
Entry Point
Exit Point
Input/Output Block
7Selection Statements
- Selectively choose one path of execution.
- Based on the evaluation of a test.
- Logical Test outcome is either TRUE or FALSE.
8Loop Structures
- Special case of Selection Statement
- One branch eventually leads back to the original
selection statement. - Permits a block of code to be executed repeatedly
as long as some test condition is satisfied.
9Basic Flowchart Symbols
10Practice Algorithm and Flowchart
Compute a sum of all integers from 1 to 100 and
displays the result
11Algorithm
Step 4 How do we compute the output? (first
solution)
Step 4.1 Start with the current integer 1
Step 4.2 Sum starts with 0
Step 4.3 Add the current integer to Sum
Step 4.4 If the current integer is less than
100, keep on adding the current integer to sum
and increase It by 1(i.e, go back to 4.3).
Step 4.5Otherwise, print out the sum
12Flowchart
Step 4.3 Add the current integer to Sum
Step 4.4 If the current integer is less than
100, go to next integer and keep on adding the
current integer to sum (i.e, go back to 4.3).
Step 4.5Otherwise, print out the sum
13Intro to Matlab
Inside Matlab This is what you should see once
Matlab has loaded. The three most useful areas in
the Matlab window are 1. Right command window
is used for inputting commands 2. Top left
workspace window notes size of matrices used 3.
Bottom left command history window maintains a
sequential list of past commands.
Workspace
Command Window
Command Window
Command Window
Command History
Command History
14Help in MATLAB
The following are three ways to access Matlabs
help files 1. a. From options at top of Matlab
window select Help ? Matlab Help b. Select
Index tab c. Type topic to be searched in
box 2. In Matlab window type a command preceded
by help or 'doc' For example,the following
commands would produce a help file for the plot
command. gtgt help plot or gtgtdoc plot 3. a. Double
click command for which you want help b.
Right-click on command c. Select Help on
Selection
15Creating files in MATLAB
A. To create a new M-file do one of the
following 1. In top left corner of Matlab window
select File ? New ? M-file 2. Select New M-file
shortcut button located at the top left corner of
Matlab screen B. Typing the following clears the
command window gtgt clc C. Typing a semicolon at
the end of a command suppresses output. Note
the difference between typing the following
commands gtgt x00.510 gtgt x00.510
16How/Where to write program
- Go to MATLAB command window
- File-New-M-File
- M-file is an Editor window
- Write your program in M-file
- Save in temp/ or your Disk.
- In command window, Run this file.
17Basic Operators
- addition
- - subtraction
- multiplication
- / right division
- power
18Review Arithmetic Operations and Precedence
19Use Parentheses to Override Operator Precedence
- Normal evaluation of expressions
- Left-to-Right if same level and no parentheses
e.g. 33-8/47-52 27-27-10 257-10
32-10 22
- Use parentheses to override
- e.g. (33-8)/4(7-5)2 (9-8)/422
- 1/44 4.25
20Overview of MatLab Variables
- Variables are names used to hold values that may
change throughout the program. - MatLab variables are created when they appear on
the left of an equal sign. - gtgt variable expression creates the "variable''
and assigns to it the value of the expression on
the right hand side. You do not need to define or
declare a variable before it is used. - gtgt x 2 creates a scalar
- The variable is x and indicates a comment
21Hands-On DEMO Expression Evaluation
In MatLab, enter the following gtgt x 1.4 gtgt
numerator x3 - 2x2 x - 6.3 gtgt denominator
x2 0.05005x 3.14 gtgt f numerator /
denominator
22Variable Naming
- Naming Rules
- must begin with a letter, cannot contain blank
spaces - can contain any combination of letters, numbers
and underscore (_) - must be unique in the first 31 characters
- MatLab is case sensitive name, Name and
NAME are considered different variables - Never use a variable with the same name as a
MatLab command (see next slide) - Naming convention
- Usually use all_lowercase_letters
- -or- camelNotation ("hump" in middle)
23Reserved Words
- MatLab has some special (reserved) words that you
may not use as variable names
break case catch catch continue else elseif end for function global if otherwise persistent return switch try while
24Commands involving variables
- who lists the names of defined variables
- whos lists the names and sizes of defined
variables - what lists all your m-files stored in memory.
- clear clears all variables, reset the default
values of special variables. - clear name clears the variable named
- clc clears the command window
- clf clears the current figure and the graph
window.
25Scalars and Vectors and Matrices
- In MatLab, a scalar is a variable with one row
and one column. - A vector is a matrix with only one row OR only
one column. The distinction between row and
column vectors is crucial. - When working with MatLab you will need to
understand how to properly perform linear algebra
using scalars, vectors and matrices. MatLab
enforces rules on the use of each of these
variables
26Scalars
- Scalars are the simple variables that we use and
manipulate in simple algebraic equations. - To create a scalar you simply introduce it on the
left hand side of an equal sign. - gtgt x 1
- gtgt y 2
- gtgt z x y
27Vectors
- A row vector in MATLAB can be created by an
explicit list, starting with a left bracket,
entering the values separated by spaces (or
commas) and closing the vector with a right
bracket. - A column vector can be created the same way, and
the rows are separated by semicolons. - Example
- gtgt x 0 0.25pi 0.5pi 0.75pi pi
- x
- 0 0.7854 1.5708 2.3562
3.1416 - gtgt y 0 0.25pi 0.5pi 0.75pi pi
- y
- 0
- 0.7854
- 1.5708
- 2.3562
- 3.1416
x is a row vector. y is a column vector.
28Simple Vector Commands
x startend create row vector x starting with start, counting by one, ending at end
x startincrementend create row vector x starting with start, counting by increment, ending at or before end
linspace(start,end,number) create row vector x starting with start, ending at end, having number elements
length(x) returns the length of vector x
y x' transpose of vector x (row to column, or columnn to row)
29Hands-On DEMO Creating Vectors
- gtgt a 110 leave off semi-colon to see what
you get each time - gtgt b 00.11
- gtgt c 7 8 9
- gtgt d 10 11 12
- gtgt length(b)
- gtgt linspace(0,100,21)
30Hands-On DEMO linspace function
Plotting a function using vector math x
linspace(0, 20, 100) define 100 x values (from
0 to 20) y 5exp(-0.3x).sin(x) compute y
vector plot(x,y), xlabel('X'), ylabel('Y'),
title('Vector calc')
- linspace( ) function can be very effective for
creating the x vector
31Entering Matrices
- A 1 2 3 4 5 6 7 8 9
- OR
- A 1 2 3
- 4 5 6
- 7 8 9
- Must be enclosed in brackets
- Elements must be separated by commas or spaces
- Matrix rows must be separated by semicolons or a
return - Matlab is case sensitive
32Matrix Elements
- x -1.3 sqrt(3) (123)4/5
- Output -gt x -1.3000 1.7321 4.8000
- Matrix Manipulation
- x(5) abs(x(1))
- Let r 1 2 3 4 5
- xx xr
- z xx(2,2)
- T xx(2,13) row 2, col. 1-3
- Semicolon at the end of a line means dont print
to the command window.
33Output Format
- Format short
- 1.3333 0.0000
- Format short e
- 1.3333E000 1.2345E-006
- Format long
- 1.333333333333338 0.000001234500000
- Format long e
- 1.33333333333333E000 1.234500000000003E-006
- Format hex
- 3FF555555555555 3EB4B6231ABFD271
- Defaults to format short.
34Matrix Operations
- Transpose
- A 1 2 3 4 5 6 7 8 9
- C A
- D -1 0 2
35Array Operations(using the period)
- The term array operations refer to
element-by-element operations. - Preceding an operator (, /, , ) by a period
indicates an element-by-element operation. - The addition and subtraction, matrix and array
operations are the same and dont need a period
before these operators. - Example
- X 1 2 3 Y4 5 6
- W X.Y to mult. X and Y arrays
36Generating Vectors
- Most often used for a time vector.
- time 0.0100.0
- Time 10.00.5100.0
- B_time 100.0-0.550.0
- Variable firstincrementlast
37Useful Matrices
- Empty Matrix
- E
- EE(2 4,)
- Empties rows 2 4 and all columns in rows 2 4.
- Zeros
- Ze zeros(2,3)
- Creates a 2 x 3 matrix consisting all of zeros.
- Ones
- O ones(3,3)
- Creates a 3 x 3 matrix consisting all of ones.
- Eye
- I eye(3,3)
- Creates a 3 x 3 matrix consisting of an identity
matrix. (Is on diagonal and 0s elsewhere)
38Hands-On DEMO Matrix Operations -
Transposes Transpose (indicated by )new
matrix created by exchanging rows and columns of
original matrix
h 1 2 3h'Â Â (nothing)ans 1Â Â Â Â Â Â 2Â Â Â Â Â Â 3 Switches from row to column vector.
h h'h . h ans 14ans 1 4 9 is matrix multiplication, and so the dimensions must line up correctly. (more on this later). is entry-by-entry multiplication.
39Hands-On DEMO Functions of Vectors
- Most Matlab functions will work equally well with
both scalars and arrays (of any dimension)
gtgt A1 2 3 4 5 gtgt sin(A) ans 0.8415
0.9093 0.1411 -0.7568 -0.9589 gtgt
sqrt(A) ans 1.0000 1.4142 1.7321
2.0000 2.2361
40Strings of Characters
- MatLab variables may also contain strings, which
are vectors of individual characters. There is no
typographical difference in appearance between
numerical variables and string variables. - The type of variable (numerical or string) is
determined when the variable is created. - gtgt x 5.2 numeric
- gtgt y 'Chewbacca' string
41What are Character Strings? Arrays!
- Example
- C 'Hello' C is a 1x5 character array.
- D 'Hello there' D is a 1x11 character
array. - A 43 A is a 1x1 double array.
- T 'How about this character string?'
- size(T)
- ans
- 1 32
- whos What do you observe?
- Name Size Bytes Class
- A 1x1 8 double
array - C 1x5 10 char
array - D 1x11 22 char
array - T 1x32 64 char
array - ans 1x2 16 double
array - Grand total is 51 elements using 120 bytes
42Hands-On DEMO Strings of Characters
- gtgt h 'Hello'
- gtgt w 'World'
- gtgt h ', ' w called concatenation
43format Examples(MATLAB performs all computations
in double precision)
- Â The format command described below switches
among different display formats. -  Command     Result                      Â
Example format short     5 digit scaled fixed
point      3.1416 format long      15 digit
scaled fixed point  3.14159265358979 format
short e  5 digit floating-point          3.1416e
00 format long e   15 digit floating-point Â
3.141592653589793e00 - format short g  general purpose          Â
5 or 1.25 or 3.0e-12 - format bank      Fixed dollars and
cents         7.95 format rat       Ratio of
small integers         355/113  format
compact Suppresses excess line feeds. format
loose    Add line feeds.
44Hands-On DEMO Formatting
- p020
- format short e exponential
- p' pow2(p)' pow2(-p)'
- format short g general purpose
- p' pow2(p)' pow2(-p)'
45In-Class Exercise MatLab Calculations
- Do the following in MatLab
- Create a matrix with the form
- 2 3
- 5 1
- Create a row (or "horizontal") vector of 2
elements, 3 and 4 (inclusive). - Create a second column (or 'vertical') vector
with the elements 2 and 1 in that order. - Type 'whos' to view your variables. It should
read (for example) - gtgt whos Name Size Elements Bytes Density
Complex - a 2 by 2 4 32
Full No - b 1 by 2 2
16 Full No - c 2 by 1 2 16 Full No
- Grand total is 14 elements using 112 bytes Here,
a is the matrix, b is the first vector, and c is
the second vector. - Now complete the following exercise
- Multiply your matrix by your first vector, above.
- Perform element by element division of your
resulting vector, divided by your second vector
transposed. (The result should be a two element
horizontal vector with 13 as each entry. ) - Type 'clear' to clear all variables from the
workspace. - Add your name as comment, print Command Window
and turn in
46Saving/Loading Data Values
- Be sure you have the correct Current Directory
set - clear, clc
- clear workspace and command window to start
- assign and calc a few values
- save file_name
- saves file_name.mat in current directory
- saves all defined variables
- clear load file_name
- brings workspace back
47Hands-On DEMO Saving Workspace
- First make sure your workspace is clear, and that
your Current Directory is set to "My Documents"
subfolder with your username (e.g. Djackson) - Create a few scalars and vectors
- check workspace window for variables
- gtgt save demo -OR- click corresponding button
- look at your folder in My Documents subfolder
- Clear workspace, check Workspace
- then Reload variables, check Workspace
48Scripts
- Scripts allow us to group and save MatLab
commands for future use - If we make an error, we can edit statements and
commands - Can modify later to solve other related problems
- Script is the MatLab terminology for a program
- NOTE Scripts may use variables already defined
in the workspace. - This can lead to unexpected results.
- It is a good idea to clear the workspace (and the
command window) at the beginning of all scripts. - clear, clc
49M-files Scripts
- A Script is the simplest example of an M-file.
- When a script-file is invoked, MatLab simply
executes the commands found in the file. - Any variables created in the script are added to
the MatLab Workspace. - Scripts are particularly useful for automating
long sequences of command.
50Writing a MATLAB Script (program)
- File ? New ? M-File
- usually start with clear, clc, format compact
- comments after
- for in-class exercises include at least
- Course, date,section (e.g. EF105, Monday 800
) - a short title
- your name
- semi-colons to suppress variable initialization
- omit semi-colons to display results
- You can leave off ALL semi-colons to trace a
program
51Matlab Editor(note "Save and Run" button)
Access to commands
Color keyed text with auto indents
tabbed sheets for other files being edited
52Script Files (filename.m)
- Always check Current Directory Window
- Set to MyDocuments\username
- Running scripts
- from editor window, click "Save and run" button
- -or- just type filename
- -or- type run filename
53Hands-On DEMO Creating our First
Script(factorial)
- File ? New ? M-File
- File ? Save As ... fact_n
- Operates on a variable in "global" workspace
- Variable n must exist in workspace
- Variable fact is created (or over-written)
fact_n Compute n-factorial, n!12...n by
DFJ fact prod(1n) no semi-colon so fact
displays
54Hands-On DEMO Running your Script
- To Run just type
- gtgt n5
- gtgt fact_n
- -OR-
- gtgt n10
- gtgt run fact_n
55Displaying Code and Getting Help
- To list code, use type command
- gtgt type fact_n
- The help command displays first consecutive
comment lines - gtgt help fact_n
56MATLAB Exercise 1
- See the Word document for this exercise and
perform at end of class on your own!!