glaciry 发表于 2008-11-20 01:27

如何从fig文件中提取数据

如果想从一个比较复杂的fig文件中提取数据,请问该如何做?
我能够从简单的fig文件中提取数据,
使用get(get(gca,'Children'),'xdata')就可以
或者使用load后在children的properties中都可以找到原始数据,

但是我从附件中的类似文件中找不到想要提取的数据
请达人指教
谢谢

抱歉不能上传真正的fig文件,因为我的文件超过了附件的限制,
如果有需要我可以发到邮箱里面

ChaChing 发表于 2008-11-20 08:25

matlab绘出的figure中任何资料都有办法取得!
取得fig handle中的Children handle, 再判断那些是axes handle
再取得axes handle中的Children handle, 再判断那些是line\image\patch handle, 就可取出xData/yData
若你有原始资料, 或许可先降低数据的大小在绘图, 如此档案就可变小上传!

vib 发表于 2008-11-20 09:09

我也曾遇到过类似的问题,也没有找到解决的办法,不过图形都是自己想得到数据,然后画出来的,可以在计算数据是调整一下算法,把数据直接输出出来,

ChaChing 发表于 2008-11-20 11:41

好吧! 试试这个吧! 自己写的烂函数, 不确定是否已经考虑周详!
自己再根据需要修改吧!
比如当初需求仅需要line, 需要考虑加上其他物件

[ 本帖最后由 ChaChing 于 2008-11-20 11:43 编辑 ]

glaciry 发表于 2008-11-20 22:05

如何从fig文件中提取数据-问题已经解决

谢谢大家的回复,
我昨晚回到家静下心来仔细找找,发觉还是能够找到需要的数据的。
简单描述一下
把fig文件读入后(importdata/load)
会得到一个struct的参数,
里面的基本参数有text, handle, properties, children, special etc
properties一般含有fig的所有信息,比如Xdata,YData,有个细节是采用imagesc画图时,数据存在参数CData里面,
比较复杂的fig,一般children会有多个struct,里面又会有嵌套,
但如chaching兄所说,
仔细找找就能找到想要的数据。


在此汗颜一下自己的编程习惯:@L

chenjc18 发表于 2008-12-9 14:30

看起来很有用 先谢谢了

adnana 发表于 2011-5-27 16:24

遇到类似的问题,亟待解决啊……

ChaChing 发表于 2011-5-28 16:36

本帖最后由 ChaChing 于 2011-5-28 16:45 编辑

回复 7 # adnana 的帖子

2F & 4F?
或具体些!?
Ref : 两个现有的fig图画在一起比较 或抓取axes数据 http://forum.vibunion.com/thread-83833-1-1.html
    from http://forum.vibunion.com/home-space-uid-63979-do-blog-id-18250.html

xhx2010 发表于 2011-12-18 10:43

遇到类似的问题,谢谢各位前辈来了!

suiyidodo 发表于 2012-3-24 00:57

好问题啊非常感谢
页: [1]
查看完整版本: 如何从fig文件中提取数据