lxx244lxx 发表于 2011-4-21 21:16:10

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

lh=findall(gca,'type','line'); % 从当前图(gca)中取出曲线的handle
xc=get(lh,'xdata'); % 取出x轴数据,注意,这个x和y是以cell的数据结构保存的
yc=get(lh,'ydata');
这样只能得到第二条线上的数据

nwcwww 发表于 2011-4-21 22:52:58

如果想分别得到两条线上的,将gca换成gcf就行了。

然后你这个程序里的yc就会是



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

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

南边的北边 发表于 2011-4-22 08:50:11

clc;clear
figure_info=findall(gcf,'type','line');
xc1=get(figure_info(1,:),'xdata')
xc2=get(figure_info(2,:),'xdata')
yc1=get(figure_info(1,:),'ydata')
yc2=get(figure_info(2,:),'ydata')

lxx244lxx 发表于 2011-4-22 09:11:39

谢谢啊,搞定了。。
3# 南边的北边

lxx244lxx 发表于 2011-4-22 09:12:38

谢谢啊,把gca换成gcf就好了。 2# nwcwww
页: [1]
查看完整版本: matlab 怎么分别提取figure子图中曲线的数据