Help with using "nargin"
3 views (last 30 days)
Show older comments
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 Comments
Answers (1)
James Tursa
on 15 May 2015
Edited: James Tursa
on 15 May 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 Comments
See Also
Categories
Find more on Matrix Indexing 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!