EGR 106 – Week 8 Data Files & Functions Interacting with Data Files Functions – Concept –...
-
date post
21-Dec-2015 -
Category
Documents
-
view
228 -
download
0
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)