Ich habe eine Funktion:Ignorieren Matlab Eingabeargumente
function myself(a,b,c,d)
Ich möchte in einem Code um diese Funktion nutzen, indem nur geben, Argumente a
und b
. Ich möchte die Argumente c
und d
ignorieren.
Wie geht das? Danke.
Ich habe eine Funktion:Ignorieren Matlab Eingabeargumente
function myself(a,b,c,d)
Ich möchte in einem Code um diese Funktion nutzen, indem nur geben, Argumente a
und b
. Ich möchte die Argumente c
und d
ignorieren.
Wie geht das? Danke.
function output = myself(varargin)
if nargin > 0
a = varargin{1};
if nargin > 1
b = varargin{2};
if nargin > 2
c = varargin{3};
if nargin > 3
d = varargin{4};
end
end
end
end
Sie können auch Standardwerte auf diese Weise definieren:
function output = myself(varargin)
if nargin > 0
a = varargin{1};
if nargin > 1
b = varargin{2};
if nargin > 2
c = varargin{3};
if nargin > 3
d = varargin{4};
else
d = 0;
end
else
c = 0;
end
else
b = 1;
end
a = 50;
end
Beachten Sie, dass viele vielleicht switch
verwenden wählen statt if, else
. Das ist eine Frage der persönlichen Präferenz.
function output = myself(varargin)
switch nargin
case 1
a = varargin{1};
case 2
[a, b] = varargin{:};
case 3
[a, b, c] = varargin{:}
otherwise
[a, b, c, d] = varargin{:};
end
Stewie Die Antwort ist sehr gut, wenn Sie viele Standardargumente haben. Wenn Sie jedoch nur eine Eingabe haben, die nicht immer verwendet wird, können Sie sie gezielt überprüfen:
Nice addition =) Ich weiß, es ist leicht zu vermeiden, aber wissen Sie, ob die Ausführung Ihres gesamten Codes innerhalb einer 'if'-Anweisung irgendwelche Nachteile hat? Formatieren in Kommentaren ist Quatsch, aber ich werde es versuchen: 'Funktion myfun (a, b, c, d) wenn ~ existieren ('d', 'var') execute_long_and_complex_code; sonst gebe 0 zurück; Ende? –
@StewieGriffin warum nicht den Zustand umkehren? 'falls vorhanden ('d', 'var'), gebe 0 zurück; Ende; do_what_ever_you_like_here; ' – Shai
@StewieGriffin Ich habe nie nach irgendwelchen Nachteilen gesucht, aber manchmal ist es einfacher (zumindest für mich), diese 'exist'-Prüfung zu verwenden, anstatt' varargin' aufzuzählen. – Shai
Warum gibt Dummy-Variablen keine Option? –