How can I save figures when created in a loop?
Show older comments
Hello, I am running my code in a loop for 66 meteorological stations/data sets. In that code, every dataset is evaluated and different calculations are made. Different figures are being created (n = 20). I managed to run the code in a loop, but I would like to save the figures according to their stationname in a different folder. So, 66 folders with each one including 20 figures from the code. I include the way I import and run the loop as well as one example of a figure. The content of the figure is irrelevant.
Let's say the calculations are made in that loop below, how can I save each file in a folder directory, that is based on its stationname?
I am using Matlab 2018b.
% Import Data from .csv
Stationnames = readtable('C:\my\directory\Stationnames.txt','delimiter',',');
Station = table2array(Stationnames);
ST = 1:length(Station);
S = dir(fullfile('C:\my\directory\data','*.csv'));
for k = 1:numel(S)
fnm = fullfile('C:\my\directory\data',S(k).name);
wind = dataset('file',fnm,'delimiter',',','format',['%s' repmat(' %f',1,4)]);
h1 = figure;
MB = bar(Norm.Comnmiss, 'grouped');
title('Count of low Quality Data Points')
ylabel('Count')
xlabel('Period')
grid on
set(gca, 'XTick', 1:4)
xticklabels({'Until 1999','2000-2005','2006-2011','2012-2021'});
saveas(h1,sprintf('C:\my\directory\...\Count_missing_values%d.fig',S(k).name));
end
Accepted Answer
More Answers (1)
Bora Eryilmaz
on 31 Jan 2023
0 votes
Use the saveas command to store the figure in a folder. If the folder is not there, you can use the mkdir command to create the folder before storing the figure. Alternatively, you can also use the exportgraphics command to store the figure content.
Categories
Find more on Printing and Saving 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!