Adding parameter to file name string when saving a figure using savefig or figsave

I am trying to save a figuer using figsave or savefig, with both string parameter and string. But nothing works.
CHANNEL=1;
dt = datestr(now,'yymmdd_HHMMSS');
filename = sprintf("C15_rhs_CalADC_ch%i_%s",CHANNEL,dt);
figsave(gcf,filename,'ac');
saveas(gcf,filename,'ac');
I need line 4 or line 5 to work to save the figuer as : C15_rhs_CalADC_ch6_220919_121449_ac

 Réponse acceptée

I am not certain what you want.
Perhaps —
CHANNEL=1;
dt = datestr(now,'yymmdd_HHMMSS');
filename = sprintf("C15_rhs_CalADC_ch%i_%s_",CHANNEL,dt) + "ac"
filename = "C15_rhs_CalADC_ch1_220919_140304_ac"
.

4 commentaires

Thanks alot for that hint. I needed the + "ac".
So the code will be:
CHANNEL = 1;
dt = datestr(now,'yymmdd_HHMM');
filename = sprintf("C15_rhs_CalADC_ch%i_%s",CHANNEL,dt);
saveas(gcf,filename + "_ac",'fig');
Star Strider
Star Strider le 19 Sep 2022
Déplacé(e) : Rik le 20 Sep 2022
My pleasure!
If it solved your problem, I can move it to an Answer. (I thought about posting it as an Answer, however I was not certain what the problem was.)
Bakr Abdelgaliel
Bakr Abdelgaliel le 20 Sep 2022
Déplacé(e) : Rik le 20 Sep 2022
Of course, please do it.
@Bakr Abdelgaliel — As always, my pleasure!
@Rik — Thank you!

Connectez-vous pour commenter.

Plus de réponses (2)

CHANNEL=1;
dt = datestr(now,'yymmdd_HHMMSS');
% filename = sprintf("C15_rhs_CalADC_ch%i_%s_ac",CHANNEL,dt); % with ac
% plot(randn(6,1))
% %figsave(gcf,filename,'png'); % figsave is a customized function?
% saveas(gcf,filename,'png') % use file type matlab recognizes
filename = sprintf("C15_rhs_CalADC_ch%i_%s",CHANNEL,dt); % with ac
plot(randn(6,1))
%figsave(gcf,filename,'png'); % figsave is a customized function?
saveas(gcf,filename+"_ac",'png') % use file type matlab recognizes
ls % the file is saved
C15_rhs_CalADC_ch1_220920_070606_ac.png

5 commentaires

I would like to add another text ('ac') before .png
Thanks for your help, but i don't like to change the parameter (filename) because i am going to use it several times with 'ac', 'dc', 'ADC', 'DAC', etc.. so i would like to add 'ac' without editing the 'filename'
Presumably 'ac', 'dc', etc are stored in a variable. Why don't you put the variable name in there?
SomeVariable='ac';
filename = sprintf("C15_rhs_CalADC_ch%i_%s_%s",CHANNEL,dt,SomeVariable);

Connectez-vous pour commenter.

Do you mean savefig? See below fo a method to create the filename as you indicate and a demo to save and open the figure.
CHANNEL = 1;
dt = datestr(now,'yymmdd_HHMMSS');
% concatenate the different strings, use _ as delimiter
filename = join( ["C15_rhs_CalADC_ch",num2str(CHANNEL),dt,"ac"] , "_" )
filename = "C15_rhs_CalADC_ch_1_220919_140322_ac"
figure
plot(rand(20,1))
axis equal
grid on
% save the figure
savefig(gcf, filename)
% try to open the figure
openfig(filename)
ans =
Figure (2) with properties: Number: 2 Name: '' Color: [1 1 1] Position: [671 661 577 433] Units: 'pixels' Show all properties

1 commentaire

I know that, but i don't like to change the parameter (filename) because i am going to use it several times with 'ac', 'dc', 'ADC', 'DAC', etc..

Connectez-vous pour commenter.

Catégories

En savoir plus sur Printing and Saving dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by