[英]heaviside function procudes different outputs in ezplot and fplot
我是MATLAB的新手,我正在尝试使用heaviside()
绘制步进函数。 我首先尝试了以下代码:
f = @(x)heaviside(x+2) - heaviside(x-2);
fplot(f, [-10 10])
结果:
使用ezplot
,结果如我所想:
f = @(x)heaviside(x+2) - heaviside(x-2);
ezplot(f, [-10 10])
结果:
fplot
和ezplot
什么区别? 提前致谢!
这与fplot
文档的以下内容有关:
fplot
使用自适应步长控制来生成代表图,将其评估集中在函数变化率最大的区域。
它看到你的函数几乎无处不在,并且不在[-2 2]
之间进行评估。 解决方案是指定最少数量的评估点:
n = 1e3;
fplot(f, [-10 10],n)
例如,如果我们从fplot
获取输出坐标:
>> [x,y] = fplot(f, [-10 10]);
>> [x y]
ans =
-10.0000 0
-9.9600 0
-9.8800 0
-9.7200 0
-9.4000 0
-8.7600 0
-7.4800 0
-4.9200 0
-2.3600 0
2.7600 0
10.0000 0
您可以看到适应性评估的实际效果。 它从-10开始,越来越快地向前迈进,直到它从-2.36跳到+2.76! 看到数据提示:
如果我们使用n=1e3
评估点:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.