How to process multiple txt files in a loop?

6 visualizaciones (últimos 30 días)
Terek Li
Terek Li el 27 de Sept. de 2016
Comentada: George el 9 de Nov. de 2016
I have multiple txt files in a folder, and I wrote a code to process a single file:
function output = do(input)
filename = ('c:\.....');
fileID = fopen(filename);
.....
process data
.....
output single output
fclose(fileID);
end
What is needed so that MATLAB processes all the files in the folder, and output all output into a single column matrix?
Much Thanks!

Respuesta aceptada

George
George el 27 de Sept. de 2016
Get an array of file names and loop over that array. e.g.,
files = ['file1.txt' 'file2.txt' 'file3.txt'];
for ii = 1:numel(files)
fid = fopen(files(ii))
...
fclose(fid)
end
or you can use datastore() with the location as a wildcard.
  4 comentarios
Nayani Ilangakoon
Nayani Ilangakoon el 7 de Nov. de 2016
Hi George, I tried to use datastore to get multiple files to process. Although it shows it has got all the files, I do not know how to pull out data from each file into separate tall arrays. Any help is highly appreciated.
George
George el 9 de Nov. de 2016
Datastore is probably not the best solution for that situation. It solves the opposite problem of "I don't care how many files my data is in, I want to aggregate it into a variable". Use dir to get the filenames.

Iniciar sesión para comentar.

Más respuestas (1)

Massimo Zanetti
Massimo Zanetti el 27 de Sept. de 2016
Editada: Massimo Zanetti el 27 de Sept. de 2016
With DIR function you have access to all data in a folder. An example is
%provide the path to your folder as argument
MyFolderInfo = dir('C/...');
%the names of the files are:
%MyfolderInfo(1).name
%MyfolderInfo(2).name
%etc....
%for example you can run your function DO on each of them
for k=1:size(MyFolderInfo,1)
out{k} = do(MyFolderInfo(k).name);
end

Categorías

Más información sobre File Operations en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by