read from multiple text file and store in a 3D array

Hi,
I have 378 text files (0001.txt, 0002.txt, ....0378.txt). I can read each text file using the following code by chaning the file name each time and it works fine. But I want to read all text files using a for loop/using a code and store in a 3D array. I need to store in a 3D array is Eleven1,....upto Eleven378.
Can somebody suggest me a way to do in matlab?
filename = '0001.txt';
delimiterIn = ' ';
headerlinesIn = 1;
Eleven_ST1 = importdata(filename,delimiterIn,headerlinesIn);
% View data
for k = [1:4]
head=(Eleven_ST1.textdata{1});
Eleven1=(Eleven_ST1.data(:, k));
Eleven1_YYRR=([Eleven_ST1.data(:,1) Eleven_ST1.data(:,4)]);
end
Thanks in advance.

回答(1 个)

See the FAQ
I strongly recommend the dir solution.
If the data in each file are 2D, then preallocate the number of planes based on the result of dir (instead of hardcoding in 378 to make the script more generally useful) and then store in the plane as
data(:,:,ix)=[file_data1 file_data2];
where ix will be the loop over 1:length(d) and
d=dir('*.txt'); % the files to process directory structure

6 个评论

Thanks. My above code is working fine to read one file at a time. But how can I modify the above code to read 378 text files and store in a 3D array?
If somebody can suggest me a way to dynamically change the filename (i.e. 0001 to 0002 so on) and store in a (:,:,:) that would be great.
Read the FAQ; examples are given...I strongly recommend using the dir solution.
See, now don't you feel like you accomplished something and learned a little more on the way???? VBG
Yes. Thanks for your guidance though.
You're welcome...my intent is generally aimed to "teach to fish" as well as get a solution...

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 File Operations 的更多信息

提问:

2014-6-17

评论:

dpb
2014-6-17

Community Treasure Hunt

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

Start Hunting!

Translated by