Open In App

How to Validate Number of Function Arguments in MATLAB?

Improve
Improve
Like Article
Like
Save
Share
Report

MATLAB functions are generally defined input and output arguments. To validate the number of these input-output arguments, MATLAB provides us with the following functions:

  1. narginchk
  2. nargoutchk

Syntax:

narginchk(<minimum-inputs>, <maximum-inputs>)

nargoutchk(<minimum-outputs>, <maximum-outputs>)

We use narginchk and nargoutchk to manually handle the exceptions generated by a lesser or greater number of arguments during a function call. In the following sections, we will see the usage of both functions with examples.

NARGINCHK in MATLAB

As discussed above, narginchk is used to validate the number of input arguments. We shall see an example where, if the input arguments in function calls are in range 2,10 then, the function prints them all else, narginchk throws an error.

Example 1:

Matlab




% MATLAB Code
fun(2,3,4)
fprintf("Lees input variables!\n\n")
fun()
  
% function
function fun(varargin)
    min = 2;
    max = 10;
    narginchk(min,max)
    disp(varargin)
end


Output:

 

In this code, the function fun takes a variable number of input arguments with the help of the varargin argument. Then, the narginchk function checks whether the number of passed input arguments is in the range 2,10 or not. If true then, the function displays the variable argument list.

As it can be seen in the output, the first function call with 3 (>2 & <10) arguments print the argument list however, the second function call throws an error as the number of arguments is 0.

NARGOUTCHK in MATLAB

Similarly, we can validate the number of output arguments with the help of the nargoutchk function. narginchk throws an error when a number of output arguments is not in the defined range. See the following example where we assign a random number to each output argument whenever the number of output arguments is from 3 to 9.

Example 2: 

Matlab




% MATLAB Code
[w,x,y,z] = fun();
disp([w x y z])
fprintf("Less output variables!\n\n")
fun()
  
%function
function [varargout] = fun
    min = 3;
    max = 9;
    nargoutchk(min,max)
    fprintf('Number of requested outputs is %d\n',nargout)
    varargout = cell(nargout,1);
    for i = 1:nargout
        varargout{i} = rand;
    end
end


Output:

 

In the above code, we define a function that assigns a random number to all of its output arguments and displays the number of output arguments, using the varargout for a variable number of outputs. The nargoutchk checks whether the number of output arguments is in the range 3,9. If not, it throws an error. So the first function call with 4 output arguments works as expected whereas the second call with no output arguments throws an error.



Last Updated : 12 Dec, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads