Extracting x,y data from a folder of figures

1 view (last 30 days)
I currently have code which extracts the x,y data from a set of figues into a cell of arrays of the data. This is what i want to have happen however there are two problems. One is that the code requires the figue to flash up and be closed to get the data. I tired to use the load function but had no luck. The other problem is that i currently pick the figures i want data from by making sure they end with the same letters. I ideally would like it so that the code starts with something like 'figures=uigetdir('C:\user\......') where i could navigate to a folder containing all the .fig files i want and load them.
Any help would be appreciated.
dinfo = dir('*mono.fig');
fignames = {dinfo.name};
numfig = length(fignames);
y = cell(numfig, 1);
z = cell(numfig, 1);
for K = 1 : numfig
figfile = fignames{K};
try
fig = openfig(figfile);
ax = get(fig, 'CurrentAxes');
if ~isempty(ax)
hline = get(ax, 'Children');
y{K} = get(hline,'XData');
z{K} = get(hline,'YData');
end
close(fig);
end
end

Accepted Answer

Rik
Rik on 10 Aug 2021
You can set the visibilty to off when loading the figure:
fig = openfig(figfile,'invisible');
That should take care of the flashing.
And what is your problem using uigetdir? The result will either be emtpy (in case the user closes the picker), or will contain a path you can use as input to dir (don't forget to add '*.fig').
  4 Comments
Cheggers
Cheggers on 10 Aug 2021
Ahh i understand now. Thank you very much

Sign in to comment.

More Answers (0)

Categories

Find more on Environment and Settings in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!