MATLAB Answers

Help with using "nargin"

11 views (last 30 days)
RG
RG on 15 May 2015
Edited: James Tursa on 15 May 2015
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

Sign in to comment.

Answers (1)

James Tursa
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

Sign in to comment.

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!