MATLAB Optional Arguments

In this tutorial, we will discuss how to set the optional arguments of a function by using the nargin and varargin properties in MATLAB.

Set the Optional Arguments of a Function by Using the varargin and nargin Property in MATLAB

You can give any number of inputs to a function using the varargin property inside the brackets of the function name, and you can check the number of inputs passed to the function using the nargin property. For example, let’s create a function that accepts any number of inputs using the varargin property and then get the number of inputs using the nargin property. See the code below.

clc
Number_of_inputs = sample(2,1,1)
function output = sample(varargin)
    output = nargin;
end

Output:

Number_of_inputs =

     3

As you can see, we passed three inputs in the function, which returns the total number of inputs. The varargin contains an array of the inputs which you can use according to your need. For example, let’s get the number of inputs and then print those inputs using a for loop. See the code below.

clc
Number_of_inputs = sample(2,'Hello',[1,2,3]);
function output = sample(varargin)
    output = nargin;
    for i=1:nargin
        disp(varargin{i})
    end
end

Output:

     2

Hello
     1     2     3

As you can see in the output, the inputs have been displayed. So you can use the index to get a specific input saved in the varargin cell array and then use them according to your requirements. All of these inputs are optional, but if you want to add some inputs that are mandatory, you can add them before the varargin. Note that you have to add the mandatory inputs during the function call; otherwise, the function will give an error. For example, let’s add two mandatory arguments and then add them to get the output, and the optional arguments will be displayed. See the code below.

clc
sum = sample(2,3,[1,2,3],'Hello')
function output = sample(x,y,varargin)
    output = x+y;
    for i=1:nargin-2
        disp(varargin{i})
    end
end

Output:

     1     2     3

Hello

sum =

     5

As you can see in the output, the first two inputs have been added to get the sum, and the optional arguments are displayed. Note that we have subtracted two from nargin because nargin gives the total number of inputs, not the inputs present in the varargin cell array. Check this link to get more information about the varargin property.

Contribute
DelftStack is a collective effort contributed by software geeks like you. If you like the article and would like to contribute to DelftStack by writing paid articles, you can check the write for us page.