matlab 读取figure 文件上的数据

本文最后更新于 2023年9月25日。

情况一:figure上只有一个axis

1、首先调用h = findobj(gca,’Type’,’line’)命令取得曲线的句柄;

2、然后调用xdata=get(h,’XData’)和ydata=get(h,’YData’)取得曲线的数据。

情况二:figure上有几个axis,即用subplot等画得图像:

clc;clear

x=1:10;

y1=x.^2;

y2=x.^3;

subplot(2,1,1)

plot(x,y1)

subplot(2,1,2)

plot(x,y2)

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’)

这样就可以将所有子图中的曲线信息都找出来。

对比了findall help文件,其中findall中的handle_list可以是一下几种:

gcf 返回当前Figure对象的句柄值

gca返回当前axes对象的句柄值

gco返回当前鼠标单击的句柄值,该对象可以是除root对象外的 任意图形对象,并且Matlab会把当前图形对象的句柄值存放在Figure的CurrentObject属性中。

情况三:figure上是个二维图像

h=findobj(gcf,’type’,’image’);

img=get(h,’CData’);

情况四:figure上是曲面图像

figure_info=findall(gcf,’type’,’surf’);

xx=get(figure_info,’xdata’);

yy=get(figure_info,’ydata’);

z=get(figure_info,’zdata’);