2016-04-11 5 views
0

Vielleicht ist dies eine sehr einfache Frage für euch, aber ich versuche, eine Funktion in MATLAB zu schreiben, die funktioniert, wenn Sie nur 2 Eingänge oder mehr haben. Ich habe nach einer Lösung gesucht, konnte aber nicht genau das finden, was ich wollte. Es ist wie diesMatlab Funktion Variable Menge Eingaben

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 

ich die Funktion arbeiten möchte, wenn der Benutzer x1,y1 als Eingang legt einfach, aber ich mag auch daran arbeiten, wenn der Benutzer x1,y1,x2,y2 legt und eine Figur zu zeichnen.

Antwort

1

Sie können entweder varargin verwenden, um mehrere Eingänge zu akzeptieren, oder exist verwenden, um nach zusätzlichen Eingängen zu suchen. Ich persönlich bevorzuge exist, weil dann die Eingabeargumente nützliche Namen beibehalten können.

varargin Beispiel

Für Ihr Szenario Einsatz von varargin vereinfacht wirklich Ihre Funktion. Die Verwendung von varargin{:} reicht einfach alle Eingabeargumente zu plot.

function myfunction(varargin) 
    plot(varargin{:}) 
end 

exist Beispiel

Hier existfalse wenn x2 oder y2 sind nicht auf die Funktion geliefert ergibt.

function myfunction(x1, y1, x2, y2) 

    if exist('x2', 'var') && exist('y2', 'var') 
     plot(x1, y1, x2, y2) 
    else 
     plot(x1, y1) 
    end 
end 
+0

Sie können 'nargin' auch für einfache Fälle verwenden. – Dan