Most MATLAB functions are overloaded. That means that there are several ways to call them and that MATLAB will “Do The Right Thing” based on the number and types of inputs. As a simple example you can call SUM
sum(M) %this will sum along the columns
sum(M,2) %this will sum along the rows
This video shows how you can implement the same behavior based on using
VARARGIN: VARiable ARGuments INNARGIN: Number ARGuments IN
I think that the recent introduction of the inputParser object has made things evolve a bit with respect to the nargin approach.
Have you ever thought about creating a video with a demo of inputParser?