WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro...

56
WELCOME WELCOME EF 105 Fall 2006 Week 10

Transcript of WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro...

Page 1: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

WELCOMEWELCOMEEF 105

Fall 2006

Week 10

Page 2: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Topics:

1. Engineering Problem Solving

2. Programming Logic

3. Intro to MATLAB

Page 3: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Engineering 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

Page 4: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

PROGRAMMING LOGIC:Top-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.

Page 5: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Structured ProgrammingStructured ProgrammingStructured 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.

Page 6: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Basic Flowcharting ElementsBasic Flowcharting Elements

test?test?FF

TT

startstarttasktask

I/O taskI/O taskstopstop

Selection BlockSelection Block

Arrows show the flow - cannot diverge but can converge.Arrows show the flow - cannot diverge but can converge.

Exit PointExit Point

Execution BlockExecution Block

Input/Output BlockInput/Output Block

Entry PointEntry Point

Page 7: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Selection StatementsSelection Statements• Selectively choose one path of execution.

– Based on the evaluation of a test.– Logical Test outcome is either TRUE or FALSE.

test?test?

if_codeif_code

if()if()

TT

FFtest?test?

if_codeif_code else_codeelse_code

if()...elseif()...else

FF

TT

Page 8: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Loop StructuresLoop 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.

loop_codloop_codee

test?test?FF

TT

inc_codeinc_code

ini_coini_codede

next_codnext_codee

Page 9: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Basic Flowchart Symbols

Entry

ExitTask I/O Q?

T

F

Page 10: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Practice: Algorithm and Flowchart

Compute a sum of all integers from 1 to 100 and displays the result

Step 1: Understand the problem:

Computes a sum of all integers from 1 to 100

Step 2: What is the input?

Step 3: What is the output?

Start from 1, stop if reach 100 or (1 and 100)

Sum

Page 11: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Algorithm

Step 4: How do we compute the output? (first solution)Step 4.1: Start with the current integer: 1

Step 4.3: Add the current integer to SumStep 4.2: Sum starts with 0

Step 4.4: If the current integer is less than 100, keepon adding the current integer to sum and increaseIt by 1(i.e, go back to 4.3).

Step 4.5:Otherwise, print out the sum

Page 12: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Flowchart

Step 4.3: Add the current integer to Sum

Step 4.1: Start with the first integer: 1

Step 4.2: Sum starts with 0

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.5:Otherwise, print out the sum

Stop

Current Integer=1Sum=0

Sum = Sum +Current Integer

Current Integer < 100

Increase Current

Integer by 1

Print Sum

Start

Page 13: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Intro to MatlabInside 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.

Command

History

Workspace

Command

Window

Command

History

Command

Window

Command

Window

Page 14: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Help in MATLABThe following are three ways to access Matlab’s help files:

1. a. From options at top of Matlab window select Help Matlab Helpb. Select ‘Index’ tabc. 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.

>> help plotor>>doc plot

3. a. Double click command for which you want helpb. Right-click on commandc. Select ‘Help on Selection’

Page 15: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Creating files in MATLABA. To create a new ‘M-file’ do one of the following:

1. In top left corner of Matlab window select File New M-file2. Select ‘New M-file’ shortcut button located at the top left corner of Matlabscreen

B. Typing the following clears the command window:

>> clcC. Typing a semicolon at the end of a command suppresses output. Note thedifference between typing the following commands:>> x=0:0.5:10>> x=0:0.5:10;

Page 16: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

How/Where to write program

Go to MATLAB command windowFile-New-M-FileM-file is an Editor windowWrite your program in M-fileSave in temp/ or your Disk. In command window, Run this file.

Page 17: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

• + addition

• - subtraction

• * multiplication

• / right division

• ^ power

Basic Operators

Page 18: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Review Arithmetic Operations and Precedence

Operation Algebraic Matlab Form Scalar

addition a + b a + bsubtraction a – b a – bmultiplication a x b a * bdivision a ÷ b a / bexponentiation ab a ^ b

Precedence Operation

1 Parenthesis, innermost first.

2 Exponentiation, left to right

3 Multiplication & division, left to right

4 Addition & subtraction, left to right

Page 19: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Use Parentheses to Override Operator Precedence

• Normal evaluation of expressions– Left-to-Right if same level and no parentheses

e.g. 3^3-8/4+7-5*2 = 27-2+7-10 = 25+7-10 = 32-10 = 22

• Use parentheses to override

e.g. (3^3-8)/4+(7-5)*2 = (9-8)/4+2*2 =

1/4+4 = 4.25

Page 20: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Overview 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.

• >> 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.

• >> x = 2 % creates a scalar • The variable is x and % indicates a comment

Page 21: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Hands-On DEMO: Expression Evaluation

3 2

2

2 6.3

0.05005 3.14

x x xf

x x

In MatLab, enter the following:

>> x = 1.4;

>> numerator = x^3 - 2*x^2 + x - 6.3;

>> denominator = x^2 + 0.05005*x – 3.14;

>> f = numerator / denominator

Page 22: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Variable 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)

Page 23: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Reserved 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

Page 24: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Commands 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.

Page 25: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Scalars 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

Page 26: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Scalars• 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. – >> x = 1;– >> y = 2;– >> z = x + y;

Page 27: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Vectors• 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:>> x = [ 0 0.25*pi 0.5*pi 0.75*pi pi ]x = 0 0.7854 1.5708 2.3562 3.1416>> y = [ 0; 0.25*pi; 0.5*pi; 0.75*pi; pi ]y = 0 0.7854 1.5708 2.3562 3.1416

x is a row vector.

y is a column vector.

Page 28: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Simple Vector Commands

x = start:end create row vector x starting with start, counting by one, ending at end

x = start:increment:end 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)

Page 29: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Hands-On DEMO: Creating Vectors

>> a = 1:10 % leave off semi-colon to see what you get each time

>> b = 0:0.1:1

>> c = [7 8 9]

>> d = [10; 11; 12]

>> length(b)

>> linspace(0,100,21)

Page 30: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Hands-On DEMO: linspace function

% Plotting a function using vector math

x = linspace(0, 20, 100); % define 100 x values (from 0 to 20)

y = 5*exp(-0.3*x).*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…

0.35 sin( )xy e x0.35 sin( )xy e x

Page 31: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

• 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

Entering MatricesEntering Matrices

Page 32: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

• x = [-1.3 sqrt(3) (1+2+3)*4/5];– Output -> x = -1.3000 1.7321 4.8000

• Matrix Manipulation:– x(5) = abs(x(1));– Let r = [1 2 3 4 5];– xx = [x;r];– z = xx(2,2);– T = xx(2,1:3); %row 2, col. 1-3

• Semicolon at the end of a line means don’t print to the command window.

Matrix Elements

Page 33: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

• Format short– 1.3333 0.0000

• Format short e– 1.3333E+000 1.2345E-006

• Format long– 1.333333333333338 0.000001234500000

• Format long e– 1.33333333333333E+000 1.234500000000003E-

006• Format hex

– 3FF555555555555 3EB4B6231ABFD271

• Defaults to format short.

Output Format

Page 34: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

• Transpose:

• A = [1 2 3; 4 5 6; 7 8 9];

• C = A’;

• D = [-1 0 2]’;

Matrix Operations

Page 35: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

• 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 don’t need a period before these operators.

• Example:– X = [1 2 3]; Y=[4 5 6];

– W = X.*Y; % to mult. X and Y arrays

Array Operations(using the period)

Page 36: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

• Most often used for a time vector.

• time = 0.0:100.0;

• Time = 10.0:0.5:100.0;

• B_time = 100.0:-0.5:50.0;

• Variable = first:increment:last

Generating Vectors

Page 37: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

• 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. (I’s

on diagonal and 0’s elsewhere)

Useful Matrices

Page 38: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

h = [1 2 3];h'  

(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.

Hands-On DEMO: Matrix Operations - Transposes

Transpose – (indicated by `)new matrix created by exchanging rows and columns of original matrix

Page 39: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Hands-On DEMO: Functions of Vectors

• Most Matlab functions will work equally well with both scalars and arrays (of any dimension)

>> A=[1 2 3 4 5];

>> sin(A)

ans =

0.8415 0.9093 0.1411 -0.7568 -0.9589

>> sqrt(A)

ans =

1.0000 1.4142 1.7321 2.0000 2.2361

Page 40: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Strings 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. – >> x = 5.2 % numeric– >> y = 'Chewbacca' % string

Page 41: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

What 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 arrayGrand total is 51 elements using 120 bytes

Page 42: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Hands-On DEMO: Strings of Characters

>> h = 'Hello';

>> w = 'World';

>> [h ', ' w] % called concatenation

Page 43: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

format 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.141592653589793e+00

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.

Page 44: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Hands-On DEMO: Formatting

p=0:20;

format short e % exponential

[p' pow2(p)' pow2(-p)']

format short g % general purpose

[p' pow2(p)' pow2(-p)']

Page 45: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

In-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): – >> 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

Page 46: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Saving/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

Page 47: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Hands-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• >> save demo -OR- click corresponding button

• look at your folder in My Documents subfolder• Clear workspace, check Workspace• then Reload variables, check Workspace

Page 48: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Scripts• 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

Page 49: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

M-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.

Page 50: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Writing 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 8:00 )• 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

Page 51: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Matlab Editor(note "Save and Run" button)

Color keyed text with auto

indents

tabbed sheets for other files being edited

Access to commands

Page 52: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Script 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

Page 53: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Hands-On DEMO: Creating our First Script(factorial)

%fact_n – Compute n-factorial, n!=1*2*...*n

% by DFJ

fact = prod(1:n) % no semi-colon so fact displays

%fact_n – Compute n-factorial, n!=1*2*...*n

% by DFJ

fact = prod(1:n) % no semi-colon so fact displays

• 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)

Page 54: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Hands-On DEMO: Running your Script

• To Run just type

>> n=5;

>> fact_n

-OR-

>> n=10;

>> run fact_n

Page 55: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

Displaying Code and Getting Help

• To list code, use type command

>> type fact_n• The help command displays first

consecutive comment lines

>> help fact_n

Page 56: WELCOME EF 105 Fall 2006 Week 10. Topics: 1. Engineering Problem Solving 2.Programming Logic 3.Intro to MATLAB.

MATLAB Exercise 1• See the Word document for this exercise and perform at end of class on your own!!