Einem Experten sollte das schnell gelingen, aber ich bin relativ neu im Definieren von Funktionen mit Optionen. Hier ist ein Schema von dem, was ich versucht habe, ich werde erklären, nachdem ich den Code gezeigt habe:
MyPlotFunction[params_, optionalparameter_List:{1,2,3}, opts:OptionsPattern[]]:=
Plot [ stuff, {x,0,1}, Evaluate@FilterRules[{opts},Options@Plot]];
Options[MyPlotFunction] = { PlotRange->{-5,5}, Frame->True, ... other plot options};
Es gibt vier kleine Feinheiten:
- Ich habe einen optionalen Parameter in meiner Funktion, die eine Liste von Ganzzahlen sein muss.
- Ich möchte die Möglichkeit haben, die Funktion mit jeder Option von Plot aufzurufen, insbesondere mit anderen Werten als den in der dritten Zeile angegebenen Standardwerten.
- Ich möchte für einige der Optionen Standardwerte haben.
- Möglicherweise möchte ich weitere Optionen in die Funktion einfügen, so dass nicht gewährleistet ist, dass alle Optionen an Plot weitergegeben werden.
Aber das, was ich oben habe, funktioniert nicht. Die Standardoptionen, die ich eingestellt habe, werden ignoriert, aber sie erscheinen in der ??MyPlotFunction
Informationen für meine Funktion. Ich werde Beispiele geben, wenn ihr den Fehler noch nicht erkennen könnt.
Bearbeiten: Beispiele, die nicht funktionieren:
-
SimplePlot[t_,opts:OptionsPattern[{PlotRange->{-4,4},Frame->True}]]:= Plot[2x+t,{x,0,1},opts];
Schlägt dies fehl, wird die Standardoption ignoriert. -
SimplePlot[t_,opts:OptionPattern[]]:= Plot[2x+t],{x,0,1},opts]; Options[SimplePlot] = {PlotRange->{-4,4},Frame->True};
Schlägt dies fehl, wird die Standardoption ignoriert. -
SimplePlot[t_,opts__:{PlotRange->{-4,4},Frame->True}]:= Plot[2x+t,{x,0,1},opts];
Die Standardoptionen funktionieren mit einem bloßen Aufruf, aber wenn eine dieser Optionen oder eine andere Plotoption außer Kraft gesetzt wird, gehen die übrigen Standardeinstellungen verloren.