lecture 26: reusable methods: enviable sloth

Post on 23-Jan-2016

22 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Lecture 26: Reusable Methods: Enviable Sloth. Creating Function M-files. User defined functions are stored as M-files To use them, they must be in the current directory. User-defined functions must start with a function definition line. The line contains… The word function - PowerPoint PPT Presentation

TRANSCRIPT

Lecture 26: Reusable Methods: Enviable Sloth

Creating Function M-files

User defined functions are stored as M-filesTo use them, they must be in the current directory

User-defined functions must start with a function definition line

The line contains… The word function A variable that defines the function

output A function name A variable used for the input argument

function output = poly(x) xz

A simple function

In the new version, the file name could be different from the function name.

The function is available from the command window or from other M-file programs

Comments

You should comment functions liberally, just as you would any computer codeThe comment lines immediately after the first line are returned when you query the help function

Functions with Multiple Inputs

A user defined function with multiple inputs

Functions with Multiple Outputs

This function return 3 output values

If you don’t ask for all three results, the program just returns the first value

Local Variables

Variables defined in an M-file function, only have meaning inside that programif set x=1 in the command window, it is not equal to 1 in the functionIf set y=2 in a function, it is not equal to 2 in the workspace windowThe only way to communicate between functions and the workspace, is through the function input and output arguments

User Defined Input

To this point we have “hard coded” the values of variables into our M-file programsThe input function allows us to prompt the user to enter a value

The input function is used in an M-file program to prompt the user to enter a value

The prompt is displayed in the command window

Input accepts a variety of data

ScalarsMatrices enter inside square brackets

Character strings enter inside single quotes Or… specify string input with ‘s’

Run this program twice – once with numeric input and once with character input

Indicates that the input should be interpreted as a string

Output Options

Enter the name of a variableUse the disp functionUse the fprintf function

disp

The display (disp) function can be used to display the contents of a matrix without printing the matrix name

The disp function can also be used to display a string

You can combine disp functions to create meaningful output from an M-file program, but the result of each disp function is on a separate line.

Use the num2str(x) function to change numeric information to a string

Since the disp function only takes one input, you must combine arrays to make more complicated output

disp(['The values in the x array are: ' num2str(x)])

StructuresSequenceSelectionRepetition

Sequence Selection Repetition (Loop)

Selection and Repetition structures require comparisons to work

Relational operators make those comparisonsLogical operators allow us to combine the comparisons

Relational Operators

< Less than<= Less than or equal to> Greater than>= Greater than or equal to== Equal to~= Not equal to

Logical Operators

& and~ not| orxor exclusive or

Selection Structures

findA family of if structures

find

The find command searches a matrix and identifies which elements in that matrix meet a given criteria.

For example…

The US Naval Academy requires applicants to be at least 66” tallConsider this list of applicant heights63”, 67”, 65”, 72”, 69”, 78”, 75”Which applicants meet the criteria?

The find function returns the index number for elements that meet a criteria

index numbers

element values

find used with a 2D matrix

x =[1 2 3; 10 5 1; 12 3 2; 8 3 1] element = find(x > 9) [row, column] = find(x > 9)

Returns a single element number

Returns the row and column designation of an element

Simple if

if comparison statementsend

For example….

if G<50 count = count +1; disp(G);end

If statementsEasy to interpret for scalarsWhat does an if statement mean if the comparison includes a matrix? The comparison is only true if it is true

for every member of the array

G=[30,55,10]if G<50

count = count +1; disp(G);end

The code inside the if statement is not executed, because the comparison is not true!!

The if/else structure

The simple if triggers the execution of a block of code if a condition is trueIf it is false that block of code is skipped, and the program continues without doing anythingWhat if instead you want to execute an alternate set of code if the condition is false?

Use an if structure to calculate a natural log

Check to see if the input is positive If it is, calculate the natural log If it isn’t, send an error message to the

screen

The if/else/elseif structureUse the elseif for multiple selection criteriaFor example Write a program to determine if an

applicant is eligible to drive

Repetition Structures - Loops

Loops are used when you need to repeat a set of instructions multiple times MATLAB supports two types of loops for while

When to use loops

In general loops are best used with scalarsMany of the problems you may want to attempt with loops can be better solved by vectorizing your code or with MATLAB’s logical functions such as find

For Loops

for index = [matrix]commands to be executed

end

•The loop starts with a for statement, and ends with the word end.•The first line in the loop defines the number of times the loops will repeat, using an index number. The loop is executed once for each element of the index matrix identified in the first line •The index of a for loop must be a variable.

Here’s a simple example

In this case k is the index – the loop is repeated once for each value of k

the index can be defined using any of the techniques we’ve learned

Here’s a simple example

In this case k is the index – the loop is repeated once for each value of k

the index can be defined using any of the techniques we’ve learned

While Loops

while criterion commands to be executedend

While loops are very similar to for loops. The big difference is the way MATLAB decides how many times to repeat the loop. While loops continue until some criterion is met.

This loop creates the matrix a, one element at a time

Improving the Efficiency of Loops

In general, using a for loop (or a while loop) is less efficient in MATLAB than using array operations.

The amount of time it takes to run this code will depend on your computer

Here’s an example. This code creates a 40,000 element matrix of ones, then multiplies each element in the matrix by pi

These two lines of code start a timer to measure the elapsed time required to run the lines of MATLAB code between them

This code accomplishes the same thing with a for loop

top related