Saving figures in a loop with variable file names

26 views (last 30 days)
Hi I'm trying to run a loop that creates plots and then saves them in a specific file. I'm having trouble saving the figures with the correct names and also populating them in a specific file. I realize what I have currently in the filename is invalid but here is what I have so far:
order = ["rr_la", "ll", "rr_sa", "cc"];
orderS = ["epi", "mid", "endo", "ave"];
for j = 1:16 % through AHA regions but not the apex
region2 = "AHA" + j;
for k = 1:4 % through order of strains
epi = S10.(region2).stat.(order(k)).epi.org;
mid = S10.(region2).stat.(order(k)).mid.org;
endo = S10.(region2).stat.(order(k)).endo.org;
ave = S10.(region2).stat.(order(k)).ave.org;
phase = 1:size(epi,1);
plot(phase,epi,phase,mid,phase,endo,phase,ave);
legend('epi','mid','endo','ave');
grid
filename = [(Snum) '_AHAPlot' (region2) (order(k)) '.fig'];
saveas(gcf,filename);
end
end

Accepted Answer

Image Analyst
Image Analyst on 29 Apr 2020
Assuming they're all strings, try sprintf():
filename = sprintf('%s_AHAPlot%s%s.png', Snum, region2, order(k));
  2 Comments
Saar Peles
Saar Peles on 29 Apr 2020
Seemed to work in creating the files, how do I make them populate a specific file?
Image Analyst
Image Analyst on 30 Apr 2020
I don't know what that means. The line of code I gave constructs a filename string. You then need other lines of code to create the file, such as
currentFigure = gcf;
exportgraphics(currentFigure, filename); % r2020a release or later only

Sign in to comment.

More Answers (0)

Categories

Find more on Printing and Saving in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!