MATLAB Answers

Extracting x,y data from a folder of figures

2 views (last 30 days)
Cheggers
Cheggers on 10 Aug 2021
Commented: Rik on 10 Aug 2021
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

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by