Generic code to import data from set of txt files?

1 vue (au cours des 30 derniers jours)
Mark
Mark le 20 Déc 2013
Modifié(e) : kjetil87 le 20 Déc 2013
I have a set of text files that have a 1x6 vector of data in each. The names of the text files are based on timestamps and are not periodic. I'd like to be able to put some variable number N of these text files into a folder, and then have a script that will load the vector from each text file into the nth row of a data matrix in MATLAB. Is there a way to do this for variable number of arbitrarily named txt files? I imagine a code like this:
N = {a command to count the number of txt files in directory}
data=zeros(N,6)
for i = 1:N
data(i,:) = {command to load data from the ith txt file in the directory}
end
So I am trying to see if there are MATLAB commands to do this generically without having to specify specific number of txt files or their names each time I compile a set of them into the directory.
Thanks!

Réponses (2)

Paul
Paul le 20 Déc 2013
you could use the commands here:
to get the file names. Then loop over these names importing one by one.

kjetil87
kjetil87 le 20 Déc 2013
Modifié(e) : kjetil87 le 20 Déc 2013
To find all .txt files in a directory use:
myDir = 'C:\iHaveStoredSomethingHere\'; %last backspace is important!
dirInfo = dir([myDir,'*.txt']);
filenames = {dirInfo.name};
N = numel(filenames);
data=cell(N,1); %need to use cell, you are not 100% sure all files has same lengths etc.
for i=1:N
fid = fopen([myDir,filenames{i}] );
data{i} = textscan(fid,'%s ');
fclose(fid);
end

Catégories

En savoir plus sur File Operations dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by