function with variable amount of inputs

29 vues (au cours des 30 derniers jours)
Romano Geerling
Romano Geerling le 11 Avr 2016
Modifié(e) : Stephen23 le 11 Avr 2016
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

Réponse acceptée

Stephen23
Stephen23 le 11 Avr 2016
Modifié(e) : Stephen23 le 11 Avr 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.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 11 Avr 2016
See the documentation for varargin and nargin

Catégories

En savoir plus sur Creating, Deleting, and Querying Graphics Objects 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!

Translated by