隐函数绘制并提取数据



这里直接给出一个例子,就可以看出ezplot提取数据的法子。

简单采用y=x^3这个函数:

1. >> subplot(121)
2. >> h1=ezplot(‘x^3’,[-6 6]);
3. >> subplot(122)
4. >> h2=ezplot(‘y-x^3’)


可以出来的图形,可以看一下:


![1]()

2012-11-7 09:13 上传





从图形曲线上看,采用两种方式绘制出来图形有一定的差别:
第一是取值区间,一个变量绘制出来的y轴是自适应的,而两个变量绘制出来的图y轴是默认区间;
第二就是曲线的颜色了,一个变量绘制出来的是蓝色曲线,而两个变量绘制出来图形是绿色曲线。

利用命令查看两条曲线的属性:

1. >> get(h1,’type’)
2. 
3. ans =
4. 
5. line
6. 
7. >> get(h2,’type’)
8. 
9. ans =
10. 
11. hggroup
12. 
13. >>


复制代码

从调出的曲线属性也可以看出,第一条曲线属性姑且称之为线条,第二条曲线属性就是一个等值线了,也可以认为是线条的集合;其实可以看出,第一条曲线就直接是绘制的y=x^3的曲线,而第二条曲线则是z=y-x^3的等值线图。



这时候可以利用get函数调出h1和h2两条曲线的全部属性,查看曲线的数据存储的位置,这里就不写属性了,内容太多,有兴趣的可以自己调出看看。可以发现h1的数据直接存储在Xdata、Ydata中,而h2的数据则存储在contourMatrix中;知道了数据的存储位置,就好办了,直接可以调出使用了。

1. 
2. >> x=get(h1,’Xdata’);
3. >> y=get(h1,’Ydata’);
4. >> C=get(h2,’contourMatrix’);
5. >> X=C(1,2:end);
6. >> Y=C(2,2:end);
7. >> subplot(121)
8. >> plot(x,y,’r’)
9. >> subplot(122)
10. >> plot(X,Y,’color’,[0 0.5 1])
11. >>


复制代码

出来的图形如下所示:


python隐函数求导 python 隐函数作图_上传


untitled.png (3.99 KB, 下载次数: 19)

下载附件  保存到相册

2012-11-7 09:40 上传





为什么提取数据时候要从C矩阵中的第二个数据开始呢?这可以查看调出来的C矩阵数据,可以看出,C矩阵的第一列存储着数据点的信息,第一个为0,我认为它是查找曲线的条数的标志点,第二个数据为曲线数据点的数目;这两个数据可以在有多条曲线时候区别每条曲线的数据作为标志。

后来又看见了别人的方法,对比之下发现上面的法子比较笨:

可以直接利用H=findobj(gca,’type’,’patch’)得到每条曲线句柄的集合,然后直接从句柄的Xdata、Ydata可以得到每条曲线数据点的值;这个方法可以见附件里面整理的。