Matlab creation function plays an essential role in implementing where the Matlan file name and the function name should be the same. There are different kinds of function creations in Matlab that are used for different purposes. Programmers might get confused because of the availability of these functions, but this blog will help you to understand each function with its syntax and example so that one can use them as per their preferences. Before proceeding to the **Matlab function creation**, get some details of what are the functions in Matlab.

Table of Contents

**What is the function in Matlab?**

The function in Matlab is the group of the statements which are used to perform a specific task in Matlab, and these functions are defined in a separate file. The file name and the function always have the same name. The functions that are used for the variables in their workspace are known as a local workspace, and another separate variable can be accessed through the command prompt, and these are known as the base workspace. The functions can take more than a single input argument and return the more than a single output argument.

**Syntax of Matlab function creation**

*function [out1,out2, …, outN] = myfun(in1,in2,in3, …, inN)*

**Example of Matlab function creation**

The example given has a function as *mymax, *and the file name *mymax.m. *it can take four numbers as the arguments and return the maximum value of the input.

Then the coding for this function can be written as:

*function max = mymax(a1, a2, a3, a4)*

*%This function measures the maximum of the*

*% four numbers that are given as input*

*max = a1;*

*if(a2 > max)*

* max = a2;*

*end*

*if(a3 > max)*

* max = a3;*

*end*

*if(a4 > max)*

* max = a4;*

*end*

The initial function’s line has the keyword function and has the function name and argument order.

You can use the input as:

**mymax(54, 87, 90, 22)**

The Matlab will give the result after executing the program as:

**ans= 90**

**Anonymous Function **

This **Matlab function creation** is just like an inline function used for traditional coding languages, which is defined in the single statement line of Matlab. It has one expression, and it could have any of the numbers as input or output arguments.

The anonymous function can be defined at the right of a command line or within the script or the function. This is how you can use **Matlab function creation** without generating the file for them.

**The syntax for the anonymous function **

*f = @(arglist)expression*

**The example for the anonymous function **

The given example has anonymous function with name power, that has two input and it returns the initial number with raised to the power of the next number. The code for this script file will be as:

*power = @(a, n) a.^n;*

*Output1 = power(5, 2)*

*Output2 = power(64, 0.5)*

*Output3 = power(10, -10)*

*Output4 = power (2.5, 2.5)*

This program will execute this, and output as:

*Output1 = 25*

*Output2 = 8*

*Output3 = 1.0000e-10*

*Output4 = 9.8821*

**Primary and Sub-Functions**

Functions that are separate from an anonymous function can be defined in a separate file. Each of these function files includes the primary function, which is shown initially, and the number of optional sub-functions which are come after the prime functions and used as per the requirement.

These prime functions can be known from the file’s outside, which defines them, whether from the command lines or from any of other functions, whereas sub-function can call from outside the function file and other function or command line. Sub-functions can appear only in another sub-functions and primary function within a function file which defines them.

**Example of primary and sub-function **

Write a function name as quadratic, which can be used to measure the roots of the quadratic equation. This function can have three inputs, the linear coefficient, the quadratic coefficient, and the constant term, and then it will return the value of roots. The name of function file as quadratic.m will have the primary function as *quadratic *and the sub-function as *disc, *which used to measure the discriminant.

Programming with *quadratic.m *as function file, then it can be as:

*function [a1,a2] = quadratic(x,y,z)*

*%this function gives the roots of *

*% a given quadratic equation.*

*% It has 3 input arguments*

*% which are the co-efficients of a2, x and the *

*%constant term*

*% It returns the roots*

*d = disc(x,y,z); *

*a1 = (-y + d) / (2*x);*

*a2 = (-y – d) / (2*x);*

*end % end of quadratic program*

*function dis = disc(x,y,z) *

*%function measures the discriminant*

*dis = sqrt(y^2 – 4*x*z);*

*end % end of sub-function*

You can use this programming, and input will be given as:

**quadratic(2,4,-4)**

Then, the output will be shown as:

**ans= 0.7321**

**Nested Matlab function creation**

This function can be used within the main body of other functions, and these can be called as nested functions. The nested functions have some or all the elements of the other functions. These **Matlab function creation** can be defined with the scope of other functions, and they can be accessed with the containing workspace of function.

**Syntax of the nested function**

*function x = A(p1, p2)*

*…*

*B(p2)*

* function y = B(p3)*

* …*

* end*

*…*

*end*

**Example of the nested function**

Let’s take the above-mentioned example of *quadratic equation, *in this example disc function will be taken as the nested function.

This has a function file named as *quadratic2.m * and program will be as:

*function [a1,a2] = quadratic2(x,y,z)*

*function disc % nested function*

*d = sqrt(y^2 – 4*x*z);*

*end % end of function disc*

*disc;*

*x1 = (-y + d) / (2*x);*

*x2 = (-y – d) / (2*x);*

*end % end of function quadratic2*

This will give the output for the input value of :

**quadratic2(2,4,-4)**

MATLAB will execute the above code and return the output as−

**ans = 0.73205**

**Private functions**

These **Matlab function creation** are the primary functions that are only visible to the limited group of the functions. If the programmer does not want to run these functions, then they can generate these functions as private functions. These functions remain in subfolders that have a particular private name. These are visible to the parent functions folder.

**Example of private function**

Again take the example of the quadratic equation. This time the *disc *function for measuring the discriminant, then the private function will be considered. Write a subfolder with the working directory and store this function as:

*function dis = disc(x,y,z) *

*%function calculates the discriminant*

*dis = sqrt(y^2 – 4*x*z);*

*end % end of sub-function*

Write a function as *quadratic3*.*m* in the working directory and then write the code as:

*function [a1,a2] = quadratic3(x,y,z)*

*%this function will return the roots of *

*% a given quadratic equation.*

*% It takes 3 input arguments*

*% that is the co-efficient of a2, a and the *

*%constant term*

*% It will return the roots*

*d = disc(x,y,z); *

*x1 = (-y + d) / (2*x);*

*x2 = (-y – d) / (2*x);*

*end % end of quadratic3*

Run the program with the input value as:

**quadratic3(2,4,-4)**

MATLAB will implement the above program and return the output as−

**ans = 0.73205**

**Global variables**

It can share with more than one function. But to use it, one requires to declare the function as global for all the functions. When the programmer wants to use that variable from its base workspace, declare it within the command line. The global declaration should carry out before the actual use of the function. It can be good to use the global variable’s name in capital letters to differentiate them for other variables.

**Example of global variables**

For this, make a function file with name average.m and write this program as:

*function avg = average(nums)*

*global TOTAL*

*avg = sum(nums)/TOTAL;*

*end*

Write a script file and write the following program in it −

*global TOTAL;*

*TOTAL = 5;*

*n = [34, 25, 33, 40, 38];*

*av = average(n)*

When one execute the program, it will show the following output−

**av = 34**

**Conclusion**

The **Matlab function creation** is used to perform the specific task with the help of using the different types of functions. There are 5 types of functions that can be used for different purposes, and these functions are anonymous, primary and sub-function, nested, private, and global variable functions. All of these have different uses and the syntax method, and the programmer can use them as per the requirement of the coding. This blog has provided all the necessary details on these functions, that help you to understand the syntax and example of these Matlab functions.

If you have issues related to the Matlab assignments and homework, then you can take our **Matlab Assignment Help, **which is available at minimal prices. We provide you well-formatted and well-syntax data in your assignments that are plagiarism-free too. Whenever you are facing any programming issue, just contact our customer support executives who are available 24/7 and solve your coding difficulty in the best possible ways