Multiple .txt input files

10 次查看(过去 30 天)
Hello,
I have created a code as shown
data1=importdata('1.txt');
phase=data1(:,3);
p=phase*2*pi;
t=data1(:,1);
fd=diff(p);
sd=diff(fd);
ti=(t/86400000);
tii = fix(ti);
tiii = (ti - tii)*24 ;
tj=tiii;
tj(end,:) = [];
tk=tj;
tk(end,:) = [];
FigHandle = figure('Position', [100, 100, 560, 751]);
ax1=subplot(3,1,1);
plot(ax1,tiii,p)
title( ' 1 Oct 2012, SV 1 ')
xlabel('UT (hours)')
ylabel('Phase at L1 (cycles)')
ax2=subplot(3,1,2);
plot(ax2,tk,sd)
xlabel('UT (hours)')
ylabel('sec diff on Phase at L1 (cycles)')
ax3=subplot(3,1,3);
plot(ax3,tk,sd)
xlabel('UT (hours)')
ylabel('sec diff on Phase at L1 (cycles)')
axis(ax3,[0 24 -2 2])
axis(ax2,[-inf inf -2 2])
axis(ax1,[-inf inf -inf inf])
This code runs on input text files with structured numerical data to do a calculation and generate a figure with the results. How can I run the program on multiple input files (say, 1.txt , 2.txt, 3.txt, 16.txt, 27.txt etc)all at once and get a plot for each input?
Please help.
PS:I am attaching two input files 10.txt and 27.txt

采纳的回答

Massimo Zanetti
Massimo Zanetti 2017-2-23
编辑:Massimo Zanetti 2017-2-23
Use dir function to list files with .txt extension
%list folder files
files = dir('*.txt');
and put your code in a function
function myFunction(fname)
%%your code....
end
and run the function for every file in your folder using a for loop Like this:
for k=1:length(files)
%get file name
fname = files(k).name;
%run your code on the current file
myFunction(fname);
end
  3 个评论
Massimo Zanetti
Massimo Zanetti 2017-2-23
编辑:Massimo Zanetti 2017-2-23
Play around this (in the body of myFunction):
function myFunction(fname)
%%your code....
figure;
plot(something);
title(['file: ',fname]);
end
If this answer helped you, please accept it.
Ironmaniac
Ironmaniac 2017-2-24
Thank you, Mr. Zanetti.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Whos 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by