Matlab 提取fig图形数据

来源:互联网 发布:js如何取整数 编辑:程序博客网 时间:2024/05/21 09:15

Matlab 提取fig图形数据

在保存了图片没有保存数据的情况下,可以根据图片重新获得原始数据。

  • 打开图片,fname.fig
    open('fname.fig');
  • 获取曲线的handle,如果图中有多条曲线,handle为一个数组
    handle = findobj(gca,'Type','line');
  • 分别获取x轴和y轴数据
    xdata = get(handle,'XData');
    ydata = get(handle,'YData');

对于利用subplot画的图,如果希望取其中某一幅图片的数据,需要用subplot命令先选中那幅图片。


以下来自从Matlab的Figure中导出数据的办法

第二种:
1、在命令行运行figure打开一个空白窗口,
2、在工具栏或者菜单中选择open打开你保存的fig文件,会显示出原来的那个图来。
3、在命令行运行obj = get(gca,'children')
这个结果对应你的图里面的线或者面的句柄,有几条线就对应几个句柄。
4、根据你需要的是哪条线,第n条线句柄就是obj(n),如果只有一个对象直接用obj就可以,
然后再用一次get,
x=get(obj(1), 'xdata');
y=get(obj(1), 'ydata');
如果是三维图,再加上个z=get(obj(1),'zdata');

x、y、z就是你所需要的坐标数据


-----------------------------
% the data
     x=1:10;
     y=rand(size(x));
     fnam='afig.fig';
% ...on display
     fh=figure;
     line(x,y);
% ...and saved
     saveas(gcf,fnam);
     delete(fh);
% the engine
     open(fnam);
     lh=findall(gca,'type','line');
     xx=get(lh,'xdata');
     yy=get(lh,'ydata');
% the result
     [isequal(x,xx)
      isequal(y,yy)]


0 0