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.



How to Validate Number of Function Arguments in MATLAB?

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.

Similar Reads

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....

NARGOUTCHK in MATLAB

...

Contact Us