小编dee*_*gee的帖子

在Mathematica的专用绘图函数中传递选项的问题

这对于专家来说应该很快,但我在使用选项定义函数方面相对较新.这是我尝试过的示意图,我将在显示代码后解释:

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};
Run Code Online (Sandbox Code Playgroud)

有四个微妙的细微之处:

  1. 我的函数中有一个可选参数,需要是一个整数列表.
  2. 我希望能够使用Plot的任何选项调用该函数,尤其是使用除第三行中指定的默认值之外的值.
  3. 我想要一些选项的默认值.
  4. 我可能想在函数中添加其他选项,因此无法保证所有选项都应该传递给plot.

但我上面所做的不起作用.我设置的默认选项被忽略,但它们出现在??MyPlotFunction我的函数的信息中.如果你们还没有发现错误,我会举例说明.

编辑:不起作用的示例:

  1. SimplePlot[t_,opts:OptionsPattern[{PlotRange->{-4,4},Frame->True}]]:= Plot[2x+t,{x,0,1},opts]; 失败,默认选项被忽略.

  2. SimplePlot[t_,opts:OptionPattern[]]:= Plot[2x+t],{x,0,1},opts]; Options[SimplePlot] = {PlotRange->{-4,4},Frame->True}; 失败,默认选项被忽略.

  3. SimplePlot[t_,opts__:{PlotRange->{-4,4},Frame->True}]:= Plot[2x+t,{x,0,1},opts]; 默认选项适用于裸调用,但如果覆盖其中一个选项或任何其他绘图选项,则其余默认值将丢失.

wolfram-mathematica

5
推荐指数
1
解决办法
953
查看次数

标签 统计

wolfram-mathematica ×1