narginchk and varargin in MATLAB
4 vues (au cours des 30 derniers jours)
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
0 commentaires
Réponses (2)
James Tursa
le 20 Avr 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.
0 commentaires
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
Voir également
Catégories
En savoir plus sur Argument Definitions dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!