How to add a string to a filename while saving plots

I have a code that runs a for loop through a folder, reads the files, plots certain variables for each file and saves the plot as a png with the filename.
[pathstr,name,ext] = fileparts(file.name); print('-dpng',name,'d');
e.g: For a file called test the plot is saved as test.png
Now I want to plot multiple graphs for the same file and hence save the file as test_angle.png for example.
Any idea how I can do that? In python I can do so using '+'. I tried using strcat and append but I think I am doing something wrong.

 Accepted Answer

Use sprintf and fullfile. You will find a complete explanation here:

3 Comments

I don't want to add a variable to the filename. I know that can be done by iterating over the files. I want a fixed string to be added to each plot's filename. for files testa, testb, testc and so on, I would like testa_angle.png, testb_angle.png.....
@Manal Shakeel: like I said, use sprintf:
sprintf('%s_angle%s',name,ext)
or perhaps:
sprintf('%s_%s_angle%s',name,'a',ext)
and I am sure you can figure out how to put that into a loop.

Sign in to comment.

More Answers (1)

name = 'test';
Either
newname = [name, '_angle'];
or
newname = strcat(name, '_angle');
or, as Stephen suggested, using sprintf
newname = sprintf('%s_angle', name);

Community Treasure Hunt

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

Start Hunting!