MATLAB中fig文件多重图片数据读取

matlab中,常用"figure,plot()"绘图观察结果,fig图片的保存也很方便,再次用matlab打开之后,可以很方便的使用matlab工具继续观察和分析图中数据。理论上,fig图片中的数据,是存在的,可以被去读出来,如果这个过程比较方便的话,fig文件可以作为一种保存数据结果的方便的方式。

参考了matlab fig文件的操作_小木匠的博客-CSDN博客

中的操作,确实可以读取出数据,但是,对于一个figure中,包含多个图表的情况,这套方法存在一些问题,一般只能读取到一个图表。如下图所示:

这个图包含上下两部分, 但是套用文中【4】的操作,只能得到图中下面三条曲线的数据,上面图标中的数据无法获得。

具体代码如下:

open('aaa.fig');%aaa.fig为图片的文件名

lh = findall(gca, 'type', 'line')

xc = get(lh, 'xdata'); 

yc = get(lh, 'ydata'); 

执行后观察,可以看到,lh和xc、yc,都只有三个元素。

本人参考matlab的语言习惯,进行了修改和尝试,找到了正确的方法,代码如下:

figfile=open('aaa.fig');

lh = findall(figfile, 'type', 'line')

xc = get(lh, 'xdata'); 

yc = get(lh, 'ydata');

此时观察工作区,可以看到,lh和xc、yc,都是6个元素。经过实际测试,其中确实包含了图中所示的6条曲线数据,顺序是从下到上。这样就实现了对fig文件中数据的读取。

将其写成函数figread(),代码如下:

function [x,y]=figread(name1)
%本程序用于读取fig文件的数据,一般默认为plot生成的数据,包含多条曲线
%1,读取图片,获得图片句柄
a=open(name1);

%2,从图片中获取曲线信息
b=findall(a,'type','line');
x=get(b,'Xdata');
y=get(b,'Ydata');

%3,关闭图片
close(a);
end

本文结束。

  • 10
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值