MATLAB Answers

Extract time series data from figure

58 views (last 30 days)
Felix
Felix on 29 Sep 2011
I have certain data only as .fig files but I want to extract the time series (x- and y points) of a particular graph and have them as a normal variable in my workspace for further analysis.
A first step that might be helpful is to open the fig file as a .mat file with load('Example.fig','-mat') The .fig file (see my dropbox link below) contains 4 figures, I am only interested in the upper part of figure 2 (see arrow http://i27.lulzimg.com/92f4285ead.png ). So I suppose the XDATA and YDATA of figure 2 should be somewhere in the second struct file under children --> .... I cannot find it within this complicated structure, and the variable editor doesn't seem to offer a search function. Can you find it?

  0 Comments

Sign in to comment.

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 29 Sep 2011
Use this example:
f=figure(1);
h=plot(magic(4));
l=findobj(gca,'type','line');
x1=get(l(1),'xdata')
y1=get(l(1),'ydata')
x2=get(l(2),'xdata')
y2=get(l(2),'ydata')

  3 Comments

Felix
Felix on 29 Sep 2011
Thanks. But when I try this with figure 2 (which contains two graphs) of my example file, for some reason findobj only finds the lines of the lower graph not of the upper graph.
I will play with it some more, this seems to be what I am looking for.
Felix
Felix on 29 Sep 2011
So, within the figure window when I go under properties editor and select the line that I want it shows me it's name under "Display Name: ..."
How can I access this object with findobj when I know the display name?
Fangjun Jiang
Fangjun Jiang on 29 Sep 2011
findobj(gca,'type','line','DisplayName',WhateverName).
After running the example code, try get(l(1)) to see all the properties.

Sign in to comment.

More Answers (0)

Sign in to answer this question.


Translated by