Looping through files and creating and saving plots

1 Ansicht (letzte 30 Tage)
John
John am 28 Jan. 2013
Hi,
I'm trying to loop through a folder of files (20) to create 20 plots.
I have most of the code completed I think, but I am unsure of how to
1. title the plot with the name of the file from which the data came from and 2. How to save the plot as a .tif image with the name of the file
Would anybody be able to advise me on this?
Thank you
files = cellstr(ls('*.xls'));
for k = 1:length(files)
sch_cycle = xlsread(files{k}, 'Sheet1');
Y1 = sch_cycle(:,1);
createfigure(Y1);
[~,fn] = fileparts(files{k});
saveas(gca,'fn.tif') %%%-Question 2%%%
end
function createfigure(Y1)
%CREATEFIGURE3(Y1)
% Y1: vector of y data
% Auto-generated by MATLAB on 16-Jan-2013 15:53:12
% Create figure
figure1 = figure;
% Create axes
axes1 = axes('Parent',figure1,...
'XTick',[0 200 400 600 800 1000 1200 1400 1600 1800],...
'FontWeight','bold',...
'FontSize',14);
box(axes1,'on');
hold(axes1,'all');
% Create plot
plot(Y1,'LineWidth',1);
% Create xlabel
xlabel('Time (s)','FontWeight','bold','FontSize',14);
% Create ylabel
ylabel('Velocity (km/hr)','FontWeight','bold','FontSize',14);
% Create title
title('fn','FontWeight','bold',... %%%-Question 1%%%
'FontSize',14);

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 28 Jan. 2013
  2 Kommentare
John
John am 31 Jan. 2013
Hi Walter,
Is the above code incorrect to create and save the plots? I thought the first piece of code would be correct? I just wanted to know to put the file name in the title of the plot in each loop. I got the file name using fileparts but I am unsure of the correct syntax to but it in the title of the plot.
Thank you
Jan
Jan am 31 Jan. 2013
@John: You can simply try it, if your code does what you want. Currently it creates the same filename "fn.tif" in each iteration and the subfunction createfigure does not know the name of the file, because this has not been provided in the input arguments.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Jan
Jan am 31 Jan. 2013
Bearbeitet: Jan am 31 Jan. 2013
[~,fn] = fileparts(files{k});
createfigure(Y1, fn);
saveas(gca,[fn, '.tif'])
and:
function createfigure(Y1, FileName)
...
title(axes1, FileName, 'Interpreter', 'none');
The used methods are described in the link Walter has posted.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by