Extract multiple data series from *.fig
3 次查看(过去 30 天)
显示 更早的评论
Hi,
I have a .fig file from which I'd like to extract the original data. But the graph is a superposition of 2 plots, one being the original data, while the second one indicates the peaks of interest (just some circles that indicate the peaks).
When I try D = get(gca,'Children'); XData = get(D,'XData'); YData = get(D,'YData'); I get only the data of the second plot, i.e. the locations and values of the peaks. How can I extract the original data instead?
Thank you.
0 个评论
回答(4 个)
Jan
2012-12-12
Are there mutliple axes objects?
findobj(get(gcf, 'Children'), 'type', 'axes')
Or are the handles of the 2nd line object hidden?
D = allchild(gca)
0 个评论
Emanuele Spinosa
2014-10-14
Hello,
I've got the same problem. Could you please tell me how you solved it?
Thanks
E.
0 个评论
Mikhail
2014-10-14
1) get id of your axes:
a=get(gcf,'Children')
2) get data you needed:
y=(get(a(1),'Children'),'YData')
If there is multiple data on 1 axes (2 or more functions on 1 graph) u'll get cell array
0 个评论
Emanuele Spinosa
2014-10-15
I think the best thing to do is to open manually the fig, delete manually all the data we're not interested in and then use the code
open namefile.fig %open your fig file, data is the name I gave to my file D=get(gca,'Children'); %get the handle of the line object XData=get(D,'XData'); %get the x data YData=get(D,'YData'); %get the y data
This will just extract the data you're interested in.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!