Skip to main content
Engineering LibreTexts

10.1.4: Anonymous (or In-Line) Functions

  • Page ID
    95561
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    There is an option in MATLAB to create an in-line function, without creating a regular function file or subfunction. It only works if the function is simple enpough to be written on a single line of code. The syntax of this option is confusing to most students. This option is never necessary, but can be convenient if the function is a particular function for only 1 script. Such in-line functions are called often "anonymous" functions. This name "anonymous" functions is common, but misleading, since such a function does have a name. (Anonymous functions are an advanced topic and is optional for this textbook.) A general purpose user function should be put in its own file.

    Using the example of the previous section, the function can be defined as an in-line function with this syntax:

    y_fun1 = @(x) log(x)./x.^2 -0.1;
     

    The left side states the name of the function.

    The @(x) states that the function is a function of x.

    The rest of the right side is the formula that will be computed.

    For an in-line (anonymous) function the function name is the function handle, so when we use it in fzero, we use the name without the @ as shown here:

    x_solution = fzero(y_fun1, 4)

    .


    This page titled 10.1.4: Anonymous (or In-Line) Functions is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by Carey Smith.

    • Was this article helpful?