How to save a plot as a file, after each iteration off a for loop.

I was wondering if it's possible to save a plot after each iteration of a for loop, and adda Date, Latitude and Longtitude to the title?
Here is the script I'm working on(the variables are added from a 5 column cell array(newdata)):
D = newdata(:,2);%depth
S = newdata(:,1); %salinity
t1 = cell2mat(newdata(:,3)); %days since 1950-01-01
t2 = 19500101;
t3 = datetime(t2,'ConvertFrom','yyyymmdd');
t4 = juliandate(t3);
t5 = t1 + t4;
T = datetime(t5,'convertfrom','juliandate'); %datenumtime
Lat = newdata(:,4);
Long = newdata(:,5);
[L,W] = size(newdata);
for i = 1 : L
x = S{i,1};
y = D{i,1};
plot(x,y),hold on
scatter(x,y),hold off
legend
xlabel('Salinity')
ylabel('depth [m]')
end
Would appreciate som help.

 Accepted Answer

See exportgraphics(): https://www.mathworks.com/help/matlab/ref/exportgraphics.html. You can call it inside the for loop to save the figures
for i = 1 : L
x = S{i,1};
y = D{i,1};
plot(x,y),hold on
scatter(x,y),hold off
legend
xlabel('Salinity')
ylabel('depth [m]')
title(sprintf('Date:%s Lat:%d Lon:%d', string(t5(i)), Lat(i), Long(i)));
exportgraphics(gca, ['file' num2str(i) '.png'])
end

15 Comments

When I use:
exportgraphics(gca, ['file' num2str(i)] '.png')
i get this error:
Error: File: Skript_haloklin_plots.m Line: 23 Column: 41
Invalid expression. Check for missing multiplication operator, missing or unbalanced delimiters, or other syntax
error. To construct matrices, use brackets instead of parentheses.
Do you know what could be the cause of that?
What is the value of variable 'i' when you run this line?
sorry for being such a noob, but how do I check that? :) It should be 1 right?
If you are inside a loop, you can use loop variable. If you are just using it alone, then you can write
exportgraphics(gca, 'file.png')
Either way, give a numeric value to i if you want to use that code.
Ok, thanks. I would like to use it to save an image of a plot for each iteration. So I guess i should try to get it to work inside loop then? It's one of those red marks at the side of line that says: "invalid syntax at '.png A'('might be missing a closing ')' " Could it be something with that?
Can you paste the exportgraphics line from your code. Make sure that it have same brackets as shown in my code.
exportgraphics(gca, ['file' num2str(i)] '.png')
here it is.
Correct the brackets
exportgraphics(gca, ['file' num2str(i) '.png'])
really appreciate you taking the time helping me out :)
now I got this error message instead though, do you know what could be wrong?
Unrecognized function or variable 'exportgraphics'.
Error in Skript_haloklin_plots (line 23)
exportgraphics(gca,['file' num2str(i) '.png'])
Which MATLAB are you using? If older than 2020a, the use the following line instead of exportgraphics
saveas(gcf, ['file' num2str(i) '.png'])
yeah, it was 2019. Works great now. Thanks so much! :)

Sign in to comment.

More Answers (0)

Categories

Find more on Interactive Control and Callbacks 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!