查看: 1323|回复: 3|关注: 1

[已解决] 关于高版本fplot代替ezplot的问题

[复制链接]

论坛优秀回答者

权威

9151 麦片

财富积分



11

主题

1万

帖子

1994

最佳答案
  • 关注者: 518
本帖最后由 jingzhaos 于 2018-12-20 17:58 编辑

在较高的版本中建议不要使用ezplot,改成fplot,但fplot对隐函数的支持并不好。
简单例子:画一个圆,对于ezplot,下面的代码都是可行的:
1. syms x y
ezplot(x^2+y^2-100,[-10,10])
或者
2. ezplot(@(x,y) x.^2+y.^2-100,[-10,10])

或者
3. ezplot(@(t) 10*sin(t),@(t) 10*cos(t),[0,2*pi])

但fplot只有3是可行的,如果碰到无法用参数表示又很难显式表示成y=f(x)的隐函数方程,方法1,2不能用,该用什么方法合适?
对于符号,高版本的fplot好像只支持一个变量,比如fplot(x^2)是可以的。

论坛优秀回答者

16

主题

1802

帖子

392

最佳答案
  • 关注者: 73
发表于 2018-12-20 18:27:53 | 显示全部楼层 |此回复为最佳答案
fplot的这种行为是在R2016a改变的,详见16a的发行声明。它是代替了ezplot的画参数方程的功能。R2016b有新函数fimplicit,代替了ezplot画隐函数曲线的功能,三维的隐函数用fimplicit3

所以你的三个例子分别对应:
  1. syms x y;fimplicit(x^2+y^2-100,[-10,10])
复制代码
  1. fimplicit(@(x,y) x.^2+y.^2-100,[-10,10])
复制代码
  1. fplot(@(t) 10*sin(t),@(t) 10*cos(t),[0,2*pi])
复制代码


ezplot画隐函数曲线是用的等高线,画参数方程用的是线:
https://blogs.mathworks.com/graphics/2015/03/03/implicit-curves/
https://blogs.mathworks.com/graphics/2016/04/20/fplot-and-friends/

多看帮助文档
说明你的matlab版本

论坛优秀回答者

权威

9151 麦片

财富积分



11

主题

1万

帖子

1994

最佳答案
  • 关注者: 518
 楼主| 发表于 2018-12-20 19:25:39 | 显示全部楼层
本帖最后由 jingzhaos 于 2018-12-20 19:35 编辑
深蓝孩童 发表于 2018-12-20 18:27
fplot的这种行为是在R2016a改变的,详见16a的发行声明。它是代替了ezplot的画参数方程的功能。R2016b有新函 ...

        明白了,原来是用fimplicit代替了ezplot,而不是用fplot,可是在官方的文档中(doc ezplot)却是建议用fplot,而且在See Also中也没有fimplict,所以有此一问。

        另外,ezpolar有没有替代函数。

论坛优秀回答者

16

主题

1802

帖子

392

最佳答案
  • 关注者: 73
发表于 2018-12-20 20:03:07 | 显示全部楼层
jingzhaos 发表于 2018-12-20 19:25
明白了,原来是用fimplicit代替了ezplot,而不是用fplot,可是在官方的文档中(doc ezplot)却是建 ...

不清楚呀。没怎么画过极坐标系下的图。
多看帮助文档
说明你的matlab版本
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表