matlab functions

19
MATLAB Functions ENGR 1181 Presentation by Cody Allison

Upload: kerri

Post on 24-Feb-2016

56 views

Category:

Documents


0 download

DESCRIPTION

MATLAB Functions. ENGR 1181 Presentation by Cody Allison. Today’s Topics. What is a function? Basic function structure Function Examples. What is a function?. MatLab has built-in functions that we have been using all semester such as sum, length, mean, and many others - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: MATLAB Functions

MATLAB FunctionsENGR 1181Presentation by Cody Allison

Page 2: MATLAB Functions

Today’s Topics What is a function? Basic function structure Function Examples

Page 3: MATLAB Functions

What is a function? MatLab has built-in functions that we have been

using all semester such as sum, length, mean, and many others

We will now learn how to create our own functions; these are called user-defined functions

It is also referred to as a subroutine or a procedure in other programming languages

Page 4: MATLAB Functions

What is a function? MatLab functions can be used to make programs

easier to read and reduce the lines of code. Allows multiple people to work on the same project

seamlessly: one person's function can be referenced in another person's script file.

Page 5: MATLAB Functions

What is a function?Just like a built-in function, a user-defined function can be used within the command window or your script fileIn order to do this, the function must be saved in your active directory.

Page 6: MATLAB Functions

Opening a function fileOpen a function file (not a script file)

Page 7: MATLAB Functions

Basic function structure

function[output variable(s)] = function_name(input variables)

typical code as compared to a script file

end

Required if using nested functions, optional otherwise

**Function definition line

**Must follow this format or MatLab will think it’s a script file and/or you will get an error

Page 8: MATLAB Functions

Saving a function file

function[fun,outputs] = eng_fun(math,science,physics)

Function files MUST be saved as the name it is called out as in the function definition line as highlighted above. Also, it must be saved as a .m file.

For example, this function file would be saved as:eng_fun.m

Page 9: MATLAB Functions

Example: One input & outputLet’s calculate how many oreos are left in a box using a function file:1. Open a new function file2. Complete the function definition line

Function[oreos_left]=oreos(hrs_of_HW)

3. Save file – oreos.m

Page 10: MATLAB Functions

Example: One input & output

Now that we have the function file defined, we can carry out the calculations to determine how many oreos we will eat:eat_yum=ceil(1/2*exp(hrs_of_HW)); %calculates the number of oreos

% Typical oreos in a package is 30

package=30;

oreos_left= package-eat_yum; %This line calculates the output

Page 11: MATLAB Functions

Example: One input & output

Let’s test our file now; be sure to save your function file. Go to your command window and type this:

oreos(hrs_of_HW)

What happens?

>> oreos(hrs_of_HW)Undefined function or variable 'hrs_of_HW'.

Page 12: MATLAB Functions

Example: One input & output

Now try this in the command window:oreos(3)

What happens?

How about this:x=3;

box=oreos(x)

ans = 19

Page 13: MATLAB Functions

Example: Two inputs & One Output

Let’s modify our oreo code to account for stress of the number of midterms that week:

function[oreos_left]=oreos_rev(hrs_of_HW,exams)

Modify our equations:eat_yum=ceil(1/2*exp(hrs_of_HW));

package=30;

bonus_yum=exams*3;

oreos_left= package-eat_yum-bonus_yum;

SAVE YOUR FILE!

oreos_rev.m

Page 14: MATLAB Functions

Example: Two inputs & One Output

Run from the command window where you did 1 hour of homework and have 2 midterms this week:

HW=1; %Hours of homework

MT=2; %Number of midterms this week

box=oreos_rev(HW,MT)

box = 22

Page 15: MATLAB Functions

Create a script fileusing oreos_rev.m

clcclearhrs=input(‘How many hours of homework have you done today? ’);midterms=input(‘How many midterms do you have this week? ’);box=oreos_rev(hrs,midterms);fprintf(‘\nYou have %i oreos left, you better do more homework!’,box)

Script file

How many hours of homework have you done today? 2How many midterms do you have this week? 1

You have 23 oreos left, you better do some more homework!

Output

Page 16: MATLAB Functions

Functions with multiple inputs & outputs

Suppose we want to calculate the stress and deflection of a cantilever beam like the one in lab, let’s create a function file for this:

𝛿=𝐹 𝐿33𝐸𝐼

𝐼=𝑤𝑡312

𝜎=𝐹𝐴

function [stress, deflection] = beam_lab(w, t , F, L, E)Function definition line

Page 17: MATLAB Functions

Functions with multiple inputs & outputs Write a function file to

calculate stress and deflection• Hint: When using more

than one output, you must assign the function to multiple outputs. Ex: [s,d]=beam_lab(inputs)

Then write a script file that calls the function file and uses these values.

w = .05 meterst = .01 metersF = 100 newtonsL = 1 meterE = 70 x 109 N/m2

What do you get?

stress = 200,000 N/m2

deflection = 0.1143 m

Page 18: MATLAB Functions

Questions?

Page 19: MATLAB Functions

Functions Examplefunction v = freefall(t,m,cd)%freefall: bungee velocity with second-order drag%v=freefall(t,m,cd) computes the free-fall velocity of an object with%second-order drag %input:%t=time (s)%m=mass(kg)%cd = second-order drag coefficient(kg/m)%output:%v=downward velocity (m/s) g = 9.81; %acceleration due to gravityv=sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t);

Command Window Output:

>>freefall(12,68.1,.25)

ans =50.6175

Now try changing the argument values