Это должно быть быстро для эксперта, но я относительно новичок в определении функций с опциями. Вот схема того, что я пробовал, я объясню после показа кода:
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};
Есть четыре тонкости:
- В моей функции есть необязательный параметр, который должен быть списком целых чисел.
- Мне нужна возможность вызова функции с любым параметром Plot, особенно с использованием значений, отличных от значений по умолчанию, указанных в третьей строке.
- Я хочу иметь значения по умолчанию для некоторых параметров.
- Я потенциально хочу добавить другие функции в функцию, поэтому не гарантируется, что все параметры будут переданы в сюжет.
Но то, что я имею выше, не работает. Параметры по умолчанию, которые я установил, игнорируются, но они отображаются в информации ??MyPlotFunction
для моей функции. Я приведу примеры, если вы, ребята, пока не можете определить ошибку.
Edit:
Примеры, которые не работают:
SimplePlot[t_,opts:OptionsPattern[{PlotRange->{-4,4},Frame->True}]]:=
Plot[2x+t,{x,0,1},opts];
Сбой, опция по умолчанию игнорируется.
SimplePlot[t_,opts:OptionPattern[]]:=
Plot[2x+t],{x,0,1},opts];
Options[SimplePlot] = {PlotRange->{-4,4},Frame->True};
Сбой, опция по умолчанию игнорируется.
SimplePlot[t_,opts__:{PlotRange->{-4,4},Frame->True}]:=
Plot[2x+t,{x,0,1},opts];
Параметры по умолчанию работают с обычным вызовом, но если один из этих параметров или любой другой параметр графика переопределяется, остальные значения по умолчанию теряются.