MATLAB Answers

Mark
0

Generic code to import data from set of txt files?

Asked by Mark
on 20 Dec 2013
Latest activity Edited by kjetil87
on 20 Dec 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!

  0 Comments

Sign in to comment.

2 Answers

Answer by Paul
on 20 Dec 2013

you could use the commands here:
to get the file names. Then loop over these names importing one by one.

  0 Comments

Sign in to comment.


Answer by kjetil87
on 20 Dec 2013
Edited by kjetil87
on 20 Dec 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

  0 Comments

Sign in to comment.