EGR 106 – Week 8 Data Files & Functions Interacting with Data Files Functions – Concept –...

Post on 21-Dec-2015

228 views 0 download

Tags:

Transcript of EGR 106 – Week 8 Data Files & Functions Interacting with Data Files Functions – Concept –...

EGR 106 – Week 8 Data Files & Functions

Interacting with Data Files Functions

– Concept – Examples and applications

Textbook chapter 4.4-4.6.1, 4.7-4.8 and chapter 6.1-6.7, 6.10

Saving data:– save filename– save filename array1 array2– save filename –ascii

Reading in (loading) data:– load filename– load filename array1 array2 – load filename –ascii

Importing/Exporting Data

Can Independently Create Data File in Most Any Program such as: Word, WordPad, Notepad

Can Easily Create Data Files in Notepad

Simply Type in Numbers and Save

Save File for Future Use

Function Concept

So far:– Have used Matlab’s built-in functions– Have started writing scripts

Function ≡ computes an output from an input– Reusable script – Sometimes called a subprogram– Building block for larger programs

Example: converting degrees to radians

Example Function: DEG2RAD

Usage:

Syntax is just like a built-in functions Application is independent of the variable

names within the function (x,y) Executed by typing name (input)

Rules for Functions

First line of the file must be of the form:

function [outputs] = name(inputs)

Identifies a function file

List of function result variables

List of any variables that the function needs

Name of the function and the file (name.m)

inputs:– Used to transfer data into the function from

the workspaceWorkspace variables are unavailable within the

functionAny necessary variables must be brought in

– For multiple inputs:Separate them by commasOrder is important

– Examples of built-in functions with inputs: sum(x) plot(x,y)

outputs:– Used to transfer results back into the

workspace from the function– For multiple outputs:

Separate them by commas in bracketsOrder is important

– Output variables must be assigned – Examples of built-in functions with outputs:

y = sum(x)

[value,location] = max(x)

Note – brackets on the left only make sense for functions:

[value,location] = max(x) is okay

[value,location] = [ 1, 2 ] is not

Default output is the first one:

[value,location] = max(x)

value = max(x)

Comments in lines 2, …:– Words in line 2 are searched when lookfor is

employed – Comments in lines 2, 3, … are returned when

help name is executed

Variables: Local vs Global

Usually, once created, variables are available in the workspace until cleared

Functions create their own workspace with their own local variables distinct from those in the original workspace

– Functions cannot modify variables within the original workspace – except through outputs

– Exception – global variables can span both workspaces and be manipulated in both

Example Functions

Consider a script to compute the area of a triangle

First as a script …

• Now as a function:

Usage doesn’t depend on knowing parameter names internal to the program:

Could add the perimeter calculation as a second, optional output:

My plotting function:

Can stack functions in one file (all must be functions)

Useful for mailing and testing

Must start

m-file with

function . . .that could be a main program used to call other functions

Typical Errors

Too few inputs

Too many inputs

Too many outputs

Wrong input type – funny result

Application f(x) = 2e-xsin(x)+e-x/2sin(2x)

Find its minimum and the first root beyond zero

x = ?

f(x) = ?

Solution using Matlab

Construct a function m-file for f(x)

To find the root: fzero('fun',a) (a = nearby value)

To find the minimum: fminbnd('fun',a,b) (a,b = range)