Download presentation

Presentation is loading. Please wait.

Published byTobias Brent Lamb Modified over 2 years ago

1
More on Functions… Lecture 8

2
Preserving Data between Calls to a function Persistent statement is declared in order to preserve some local information within a function between calls to afunction persistent var1,var2… Example: Running averages function [ave,std]=runstats(x) %runstats generate running ave /std deviation persistent n Persistent sum_x Persistent sum_x2 if x == ‘reset’ n=0 Sum_x=0 Sum_x2=0 else n=n+1 Sum_x = Sum_x Sum_x2=Sum_x2+x^2 end

3
Preserving Data between Calls to A function if n == 0 ave=0; std=0; elseif n == 1 ave=sum_x; std=0; else ave=sum_x/n; std=sqrt((n*sum_x2-sum_x^2)/(n*(n-1))); end script file [ave,std] = runstats(‘reset’) nvals=input(‘enter number of values’); for ii=1:nvals x=input(‘enter a value’, ‘s’); [ave,std]=runstats(x) end

4
Function functions A function includes the name of other functions in the input argument list. Function NameDescription fminbnd Minimize a function of one variable fzero find a zero of a function of one variable quad Numerically integrate a function ezplot easy to use function plotter fplot plot a function by name Common MATLAB Function functions

5
Function functions Common MATLAB Function functions >> fzero(‘cos’,[0 pi]) ans = 1.5708 >> fzero('exp(x)-2',[0 1]) ans = 0.6931 Locates a zero of the function cos between 0 and pi. Locates a zero of the function e x -2 between 0 and 1.

6
Function functions Common MATLAB Function functions >>fminbnd('x^3-2*x', 0,1) ans = 0.816496985529690 >> quad(@fun,0,1) ans = -0.166666666666667 Locates a minimum between 0 and 1. integrate function in ‘fun’ using simpson’s rule function y=fun(x) y=x.^2-x; ‘fun’ includes any one variable function

7
Function functions Common MATLAB Function functions >>ezplot('x^3-2*x') quick plot of function in the string >>ezplot(@sin)

8
Function functions Common MATLAB Function functions >> fplot('x^3-x',[-5 5]) quick plot of function in the string >> fplot(@sin,[-2*pi 2*pi])

9
Function functions eval and feval functions eval evaluates a character string as though it had been typed in the Command Window. feval evaluates a named function at a specific input value. >>x=eval('sin(pi/4)') x = 0.707106781186547 eval (string) >>y=eval('x^2-2*x') ??? Error using ==> eval Undefined function or variable 'x'.

10
Function functions eval and feval functions eval evaluates a character string as though it had been typed in the Command Window. feval evaluates a named function at a specific input value. >>x=feval('sin’,pi/4) x = 0.707106781186547 feval (fun,value) >> y=feval(@fun,2) y = 2 function y=fun(x) y=x.^2-x;

11
Example: ascending sort function out = ssort(a) nvals=length(a); for i=1:nvals-1 iptr=i; for j=i+1:nvals if a(j)
{
"@context": "http://schema.org",
"@type": "ImageObject",
"contentUrl": "http://images.slideplayer.com/14/4351551/slides/slide_11.jpg",
"name": "Example: ascending sort function out = ssort(a) nvals=length(a); for i=1:nvals-1 iptr=i; for j=i+1:nvals if a(j)

12
Function Handles You can create a function handle to any function by using either @ before the function name. You can name the handle if you wish and use the handle to reference the function. For example, to create a handle to the sine function; >> sine_handle = @sin; >> plot ([0:0.01:6], sine_handle, [0:0.01:6])

13
Methods for Calling Functions There are four ways to invoke, or call, a function into a function. 1.As a character string identifying the appropirate function M-file: 2.As a function handle, 3.As an inline function object 4.As a string 1. function y= fun1(x) y = x.^2-4; The function may be called as follows, to compute the zero over the range 0

14
2. As a function handle: [x,value] = fzero(@fun1,[0,3]) 3. As an inline function object: >>fun1=‘x.^2-4’; >>fun_inline =inline(fun1); >>[x,value] = fzero(@fun1,[0,3]); 4. As a string expression >>fun1=‘x.^2-4’; >>[x,value] = fzero(@fun1,[0,3]); Or >>[x,value] = fzero(=‘x.^2-4’,[0,3]);

15
Anonymous Functions

16
You can pass the handle of an anonymous function to another function Multiple input arguments

17
Calling one function within another

18
Nested functions

Similar presentations

OK

Advanced use of functions Anonymous functions function handles subfunctions and nested functions.

Advanced use of functions Anonymous functions function handles subfunctions and nested functions.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on standing order Ppt on hard disk drive download Ppt on artificial intelligence in power station Micro display ppt on tv Ppt on great industrialists of india Ppt on area related to circles for class 10 Ppt on job evaluation answers Ppt on trial and error problem Ppt on revolt of 1857 ppt Ppt on importance of sports and games