How can I set the file name as my title name in a subfolder for numerous plots

Hi,
I am trying to set the title name (that varies depending on the plot) as the file name in a subfolder. I get the error code: Error using sprintf. Function is not defined for 'cell' inputs.
So there is some mistake with my syntax. I have tried different approaches but I don't get it to work. My code is as follows:
figure Timestep=(1:length(d_f_t(:,1)))'; plot(Timestep,W_per_K_serie, '*'); title(['Byggnad', subfolderNames(b)])
folder_path='PathXXX';
saveas(fullfile(folder_path, sprintf('%s.jpg',get(get(gca,'title'),'string'))));
Does anybody have any advice? Thank you in advance

2 Commenti

I tried your code as follows:
figure
title(['Byggnad'])
folder_path='PathXXX';
mkdir(folder_path);
saveas(gca,fullfile(folder_path, sprintf('%s.jpg',get(get(gca,'title'),'string'))));
And it works fine for me. You must specify the handle to the figure when using saveas.
Hi,
It doesnt't work still unforuntately. My error is now:' Error using saveas. Invalid handle'.
The code looks as follows:
folder_path='XXXXX'; mkdir(folder_path);
tmp = char(get(get(gca,'title'),'string')); saveas(fighandle, fullfile(folder_path, sprintf('%s.jpg', tmp)));
It is noteworthy that my title changes name for every loop I'm performing. However, this should not affect the result? Thank you in advance.

Accedi per commentare.

 Risposta accettata

The title 'String' property may be a cell array, string array, or a char vector. You can easily convert this into a char vector:
tmp = char(get(get(gca,'title'),'string'));
saveas(figH, fullfile(folder_path, sprintf('%s.jpg',tmp)));
I would recommend that you avoid gca, gcf, etc., and always obtain and use explicit graphics handles for all graphics objects that you need to refer to.

7 Commenti

This statements will still not work. Figure handle is still needed
saveas(figHandle, fullfile(folder_path, sprintf('%s.jpg',tmp)));
Hi,
I still get an error:' Error using saveas. Invalid handle'.
The code looks as follows:
folder_path='XXXXX'; mkdir(folder_path);
tmp = char(get(get(gca,'title'),'string')); saveas(fighandle, fullfile(folder_path, sprintf('%s.jpg', tmp)));
It is noteworthy that my title changes name for every loop I'm performing. However, this should not affect the result? I am grateful for any answers!
If the figure window is closed then the figure handle will no longer be valid. Make sure that the figure associated with fighandle exist.
I do not really understand. How do you mean? To be more specific, I just want to save the figures in the subfolder, i.e. they do not need to be plotted during the calculations.
Where can I update this according to your advice in the code?
folder_path='XXXXX'; mkdir(folder_path);
tmp = char(get(get(gca,'title'),'string')); saveas(fighandle, fullfile(folder_path, sprintf('%s.jpg', tmp)));
How do you intend to save them if you don't plot then first? Are you calling some function like plot(), scatter() etc.?
@Ameer Hamza: thank you for the comment, I fixed the answer.

Accedi per commentare.

Più risposte (1)

Yes, I am calling on the function with plot. I got it to work with gca instead of fighandle. However, some parts of the text in the title got misarranged in the jpg file. That I don't understand. Thank you!

Categorie

Scopri di più su Printing and Saving in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by