The basic function m-file • Local functions, a k a subfunctions • Nested functions • Anonymous functions ME 350: User-defined functions page 1
Previous PDF | Next PDF |
[PDF] Anonymous Functions
4 sept 2003 · You can construct an anonymous function either at the MATLAB command line or in any M−file function or script The syntax for creating an
[PDF] MATLAB Programming II – Functions - MIT OpenCourseWare
MATLAB support functions of different types but two are particularly important: Anonymous function defined via function handles Cite as: Peter So, course
[PDF] Chapter 3 Functions and Files
You can construct an anonymous function either at the MATLAB command line or from within another function or script Thus, anonymous functions provide a quick
[PDF] Week 4: Functions
11 fév 2019 · To write functions in Matlab, we create m files that tell the function what make an anonymous function for f(x)=6ex sin(x) and then plot f(x):
[PDF] Anonymous functions and Intro to Matrices
1 Anonymous functions We've learned how to use subfunctions to pass function handles to ode45 These require you to put all of your code inside a Matlab
[PDF] User-defined Functions in MATLAB - Portland State University
The basic function m-file • Local functions, a k a subfunctions • Nested functions • Anonymous functions ME 350: User-defined functions page 1
[PDF] Contents ANONYMOUS FUNCTIONS
Anonymous functions are a simple and concise way to define a function that contains to the end of an anonymous function definition will prevent MATLAB from
[PDF] anonymous function matlab multiple lines
[PDF] anonymous function matlab plot
[PDF] anonymous function matlab vector
[PDF] another way to say whatever you want
[PDF] anova for categorical data
[PDF] anova for categorical data in r
[PDF] anova for categorical variables
[PDF] ansi 1/3 octave bands
[PDF] ansi c
[PDF] ansi c 11 pdf
[PDF] ansi c plotter
[PDF] ansi c standard
[PDF] ansi c vs c99 vs c11
[PDF] ansi c99 standard pdf
User-dened Functions in MATLAB
Gerald W. Recktenwald
Department of Mechanical Engineering
Portland State University
gerry@pdx.eduME 350: User-dened functions
Overview
Topics covered in these slides
The basic function m-le
Local functions, a.k.a. subfunctions
Nested functions
Anonymous functionsME 350: User-dened functionspage 1Basic m-le Functions
Basicfunction m-leshave these properties:
1.The function is dened in a sepa ratem-le.
2. F unctionname is the same as the name of the m- le. 3. The function can ha vemany input pa rametersand many outpu tpa rameters. input parameterstake on the values given by the calling function. output parametershave values that are returned to the calling function. 4. V ariablesin the function have their o wnw orkspace(memo ry). Variables in the function are separate from variables in other functions and in the command window environment, even if those variables have the same names. Values are only shared via input and output parameters.ME 350: User-dened functionspage 2Function m-les
Syntax:
The rst line of a function m-le has the form:
function [outArgs] = funName(inArgs) outArgsare enclosed in[ ] outArgsis a comma-separated list of variable names [ ]is optional if there is only one parameter functions with nooutArgsare legal inArgsare enclosed in( ) inArgsis a comma-separated list of variable names functions with noinArgsare legalME 350: User-dened functionspage 3Basic m-le Function: Example
ThequadraticRoots
function is contained in quadraticRoots.mand can be called from the command line, or another m-le.function x = quadraticRoots(a,b,c) % quadraticRoots Compute the two roots % of the quadratic equation % Input: a,b,c = (scalar) coefficients of % the quadratic equation % a*x^2 + b*x + c = 0 % Output: x = vector of the two roots d = sqrt( b^2 - 4*a*c); x1 = (-b + d)/(2*a); x2 = (-b - d)/(2*a); x = [x1, x2]; end quadraticRoots.m >> c1 = 1; >> c2 = 5; >> c3 = 2; >> r = quadraticRoots(c1,c2,c3); r = -0.4384 -4.5616ME 350: User-dened functionspage 4Function Input and Output (1)
Examples:Demonstrate use of I/O arguments
twosum.m| two inputs, no output threesum.m| three inputs, one output addmult.m| two inputs, two outputsME 350: User-dened functionspage 5Function Input and Output (2)
twosum.mfunction twosum(x,y) % twosum Add two matrices % and print the result x+y endthreesum.mfunction s = threesum(x,y,z) % threesum Add three variables % and return the result s = x+y+z; endaddmult.mfunction [s,p] = addmult(x,y) % addmult Compute sum and product % of two matrices s = x+y; p = x*y; endME 350: User-dened functionspage 6Function Input and Output Examples (3)
Example:Experiments withtwosum
>> twosum(2,2) ans = 4 >> x = [1 2]; y = [3 4]; >> twosum(x,y) ans = 4 6 Note:The result of the addition insidetwosumis exposed because thex+yexpression does not end in a semicolon. (What if it did?)ME 350: User-dened functionspage 7Function Input and Output Examples (4)
>> A = [1 2; 3 4]; B = [5 6; 7 8]; >> twosum(A,B); ans = 6 8 10 12 >> twosum('one','two') ans =227 229 212
Note:The strange results produced bytwosum('one','two')are obtained by adding the numbers associated with the ASCII character codes for each of the letters in `one' and `two'. Trydouble('one')anddouble('one') + double('two').ME 350: User-dened functionspage 8Function Input and Output Examples (5)
Example:Experiments withtwosum:
>> clear >> x = 4; y = -2; >> twosum(1,2) ans = 3 >> x+y ans = 2 >> disp([x y]) 4 -2 >> whoYour variables are:
ans x y In this example, thexandyvariables dened in the workspace are distinct from thexand yvariables dened intwosum. Thexandyintwosumarelocaltotwosum.ME 350: User-dened functionspage 9Function Input and Output Examples (6)
Example:Experiments withthreesum:
>> a = threesum(1,2,3) a = 6 >> threesum(4,5,6) ans = 15 >> b = threesum(7,8,9); Note:The last statement produces no output because the assignment expression ends with a semicolon. The value of 24 is stored inb.ME 350: User-dened functionspage 10Function Input and Output Examples (7)
Example:Experiments withaddmult
>> [a,b] = addmult(3,2) a = 5 b = 6 >> addmult(3,2) ans = 5 >> v = addmult(3,2) v = 5 Note:addmultrequirestwo return variables. Callingaddmultwith no return variables or with one return variable causes undesired behavior.ME 350: User-dened functionspage 11Summary of Input and Output Parameters
Values are communicated through input arguments and output arguments. Variables dened inside a function arelocalto that function. Local variables are invisible to other functions and to the command environment. The number of return variables should match the number of output variables provided by the function. This can be relaxed by testing for the number of return variables with nargout.ME 350: User-dened functionspage 12Variable Number of Input and Output
ParametersME 350: User-dened functionspage 13
Variable Input and Output Arguments (1)
Each function has internal variables,narginandnargout. Use the value ofnarginat the beginning of a function to nd out how many input arguments were supplied. Use the value ofnargoutat the end of a function to nd out how many input arguments are expected.Usefulness:
Allows a single function to perform multiple related tasks. Allows functions to assume default values for some inputs, thereby simplifying the use of the function for some tasks.ME 350: User-dened functionspage 14Variable Input and Output Arguments (2)
Consider the built-inplotfunction
Inside theplotfunction
nargin nargoutplot(x,y)2 0 plot(x,y,'s')3 0 plot(x,y,'s--')3 0 plot(x1,y1,'s',x2,y2,'o')6 0 h = plot(x,y)2 1The values ofnarginandnargoutare determined when theplotfunction is invoked.ME 350: User-dened functionspage 15