function with variable amount of inputs

29 views (last 30 days)
Hello everybody,
maybe this is very simple question for you guys, but I'm trying to write a function in matlab that works when having just 2 inputs or more. I have been looking for a solution, but couldn't find exactly what I wanted. It is like this
function myfunction(x1,y1,x2,y2)
plot(x1,y1) %user just puts x1,y1
or
plot(x1,y1,x2,y2) %user puts x1,y1,x2,y2
end
I want the function to work, when the user just puts x1,y1 as input, but I also want it to work when the user puts x1,y1,x2,y2 and plot a figure.
Many thanks in advance.
Romano

Accepted Answer

Stephen23
Stephen23 on 11 Apr 2016
Edited: Stephen23 on 11 Apr 2016
Use nargin:
function myfun(x1,y1,x2,y2)
switch nargin
case 2
plot(x1,y1)
case 4
plot(x1,y1,x2,y2)
otherwise
error('This number of arguments is not supported')
end
end
Or for the general case you can use varargin: this has the disadvantage that the inputs are not named, so tab completion and the code helper tools will only show varargin instead of more useful variable names.

More Answers (1)

Walter Roberson
Walter Roberson on 11 Apr 2016
See the documentation for varargin and nargin

Categories

Find more on Creating, Deleting, and Querying Graphics Objects 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!