找回密码
 注册
Simdroid-非首页
查看: 98|回复: 4

matlab 怎么分别提取figure子图中曲线的数据

[复制链接]
发表于 2011-4-21 21:16:10 | 显示全部楼层 |阅读模式 来自 陕西西安
lh=findall(gca,'type','line'); % 从当前图(gca)中取出曲线的handle
xc=get(lh,'xdata'); % 取出x轴数据,注意,这个x和y是以cell的数据结构保存的
yc=get(lh,'ydata');
这样只能得到第二条线上的数据

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2011-4-21 22:52:58 | 显示全部楼层 来自 英国
Simdroid开发平台
如果想分别得到两条线上的,将gca换成gcf就行了。

然后你这个程序里的yc就会是
[1xm double]
[1xn double]

即两列图里的y值。
不过要注意cell本身顺序和你让MATLAB画图的顺序相反,
比如说你先subplot了(x1,y1), 然后是(x2, y2),
不管这两张图哪张在上哪张在下,
yc{1}会是y2, yc{2}则是y1。

当然从方便角度考虑,往往还是画图的时候直接给subplot加handle好。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-4-22 08:50:11 | 显示全部楼层 来自 四川成都
  1. clc;clear
  2. figure_info=findall(gcf,'type','line');
  3. xc1=get(figure_info(1,:),'xdata')
  4. xc2=get(figure_info(2,:),'xdata')
  5. yc1=get(figure_info(1,:),'ydata')
  6. yc2=get(figure_info(2,:),'ydata')
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-4-22 09:11:39 | 显示全部楼层 来自 陕西西安
谢谢啊,搞定了。。
3# 南边的北边
回复 不支持

使用道具 举报

 楼主| 发表于 2011-4-22 09:12:38 | 显示全部楼层 来自 陕西西安
谢谢啊,把gca换成gcf就好了。 2# nwcwww
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-4 21:23 , Processed in 0.031642 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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