narginchk and varargin in MATLAB

6 views (last 30 days)
DM on 20 Apr 2015
Answered: James Tursa on 20 Apr 2015
I have come across PART of a code in MATLAB in a toolbox that I don't understand
elseif (txMode==2)
narginchk(7, 7);
numTx = varargin{1};
numRx = varargin{2};
switch numTx
case 2
numCSRRE_RB = 4*2*2;
case 4
numCSRRE_RB = 4*3*2;
I don't understand what `narginchk` and `varargin` are used for in this example, and why is that the output of `varargin{1}` would be either 2 or 4 (a conclusion I came up with when looking at the code after `switch`).

Answers (1)

James Tursa
James Tursa on 20 Apr 2015
narginchk(7, 7) throws an error if the number of input arguments is less than 7 or greater than 7 (i.e., the number of input arguments must be exactly 7 in this case or an error will be thrown).
varargin{1} is the first input argument.
varargin{2} is the second input argument.
Why the value of varargin{1} should be 2 or 4 would depend on the code in question and how it is called.


Find more on Argument Definitions in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!