matlab之提取figure图的数据点并保存到excle

今天在帮师兄处理数据的时候,因为碰到要将matlab作的图转到orange里面,因为存在matlab函数调用的问题,数据量太大,从图中一个一个复制粘贴数据太麻烦了。为此在网上找了一段代码,经测试过可以使用,为此十分感谢!下面记录一下相关流程,备日后使用。
参考:matlab提取fig图形数据
首先,把fig图片保存下来并命名为a1.fig。然后在同文件夹下新建一个.m文件为:

clear
open('a1.fig');%为文件名
handle = findobj(gca,'Type','line');%获取曲线的handle,如果图中有多条曲线,handle为一个数组
xdata = get(handle,'XData');
ydata = get(handle,'YData');
%%xlswrite('xdata.xlsx',xdata); %%我试过了这两行代码,保存下来的是空的xlsx文件,因此未采用
%%xlswrite('ydata.xlsx',ydata);

因为我的图片中是5条线,得到的数据如图:
在这里插入图片描述
得到的xdata和ydata是一个5x1的cell,类似张量。这里因为只有x或y的数据,所以cell中的每一元素都是一个向量。要明白一点cell x 和cell y 的每一个元素都是一一对应的,这样fig图中每一条线的x和y的数据。

接下来,采用傻瓜式的操作,分别点进xdata(1,1)和ydata(1,1),选中所有数据(需要把横的变成竖的可以右击,有个”转置选项“)复制,然后新建一个excle表格,直接粘贴便可。
剩下的同理。
在这里插入图片描述
需注意的是复制到excle中的数据可能会出现如下图所示的格式错误。(我这里是因为-inf无法在表中直接显示,需要手动敲)
在这里插入图片描述
最后一句话,记得检查所得的excle数据是否存在乱码的情况,一般不用怀疑所得数据和fig图的数据不一致,代码是根据fig图中的数据得到的,不像百度中一堆的是根据图像识别得到而存在精度问题。

  • 19
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

通信仿真爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值