Help with using "nargin"
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi All,
I got a function "replace(a,b,c)" where I am trying to replace input arguments with another input argument when some of them are omitted. e.g. If c is omitted, I need to replace a with 2 copies of b and if b is also omitted, a needs to be replaced with 2 zeros. I tried to use nargin, but haven't been successful, can anyone help me on what I am doing wrong?
function replace(a,b,c)
if nargin<2
a=0;
end
if nargin<3
a=b;
end
Thanks.
0 commentaires
Réponses (1)
James Tursa
le 15 Mai 2015
Modifié(e) : James Tursa
le 15 Mai 2015
Think about what happens in your code if nargin == 1. In that case, b does not exist, but you get into the nargin<3 test and try to use b. So this will fail.
Your words are not entirely clear to me, but here is a guess at what you might want:
function replace(a,b,c)
if nargin < 2
a = 0;
b = 0;
c = 0;
elseif nargin < 3
a = b;
c = 0;
end
2nd attempt at coding verbatim what you requested:
function replace(a,b,c)
if nargin < 2
a = [0 0];
elseif nargin < 3
a = [b b];
end
0 commentaires
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!