narginchk and varargin in MATLAB
Afficher commentaires plus anciens
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;
end
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`).
Thanks
Réponses (2)
James Tursa
le 20 Avr 2015
0 votes
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.
Lei
le 20 Avr 2023
Modifié(e) : Walter Roberson
le 20 Avr 2023
Recode
function p= marie (p,q)
narginchk[2,3]
disp('Yo, G!')
a=p+q
end
1 commentaire
Walter Roberson
le 20 Avr 2023
%if the user passes in no parameters then none of the parameters will exist
%if the user passes in too few parameters then variable p will not exist
%if the user passes in more than 3 parameters then there will be a 4th
%parameter and that should be rejected
%
%note that we are accepting a third parameter even though we do not do
%anything with it. This is because the original code permitted either 2 or
%3 inputs.
function p = marie (p,q,extra_ok,extra_not_ok)
if ~exist(p, 'var') || exist('extra_not_ok', 'var')
error('You must pass in either 2 or 3 inputs')
end
disp('Yo, G!')
a=p+q
end
Catégories
En savoir plus sur Develop Apps Using App Designer dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!