本文最后更新于 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’);