nargin, nargout

There are two special identifiers, nargin and nargout, that indicate the number of parameters passed into and the number of parameters returned from the function respectively.

They can be used inside a function body, as shown below.
function [x,y] = goo(a,b,c)   
   print(nargin)   
   print(nargout)   
   x=a+b   
   y=b+c
end
They can also be used outside, for example:
function [y1, y2, y3] = foo(x1, x2)
      y1=x1;      
      y2=x2;      
      y3=x1+x2;
end

nargin('foo')
nargout('foo')

This returns 2 and 3.

In case the function take advantage of the ability to pass (or get) variable numbers of input (or output) to a function, nargin and nargout return negative values. For example:
function [y1, y2, varargout] = goo(x1, varargin)
      y1=x1;      
      y2=x2;      
      y3=x1+x2;
end 

nargin('goo')
nargout('goo')

This returns -2 and -3.