我的问题是:下面的代码为什么不起作用,我该如何修复它?
结果是两个空白图表。相比之下,
Plot[f[t], {t, 0, 2*Pi}] /. {{f -> Sin}, {f -> Cos}}
结果是两个空白图表。相比之下,
DummyFunction[f[t], {t, 0, 2*Pi}] /. {{f -> Sin}, {f -> Cos}}
提供
{DummyFunction[Sin[t], {t, 0, 2 *Pi}], DummyFunction[Cos[t], {t, 0, 2 * Pi}]}
按照要求进行操作。
以下是我实际操作的简化版。我非常烦恼,即使找到了正确的方式来放置花括号,仍然无法正常工作。
最终,我采取了以下方法,它可以正常工作:
p[f_] := Plot[f[t], {t, 0, 2*Pi}]
p[Sin]
p[Cos]
Evaluate[]
,只需将替换移动到Plot[]
中就足够了。Plot[f[t]/. {{f -> Sin}, {f -> Cos}}, {t, 0, 2*Pi}]
- IsaacEvaluate
是必要的,否则Plot
无法如你所愿地运行。 - rcollyerHold
/ReleaseHold
方法。 - rcollyerEvaluate
意味着替换只进行一次,然后结果被Plot
使用;如果没有Evaluate
,则每个绘图点都将进行一次ReplaceAll
。然后Plot
不会执行分析,从而使其自动给出曲线的不同颜色。如果您不是在做简单的事情,它也会变慢——在/.
的右侧放置一个NDSolve
,如果没有Evaluate
,您可能需要喝杯咖啡等待。十有八九,Evaluate
是正确的解决方案:例外情况是,如果您尝试Plot
的东西需要数字参数才能工作。 - Pillsy