如何编写for循环在Matlab中读取1000个文本文件?

时间:2014-07-10 16:46:01

标签: matlab text-files

我有1000个文本文件,其名称为A0000.txt,A0001.text,...,A1000.text。 我想读取文本文件中的信息并将其中的一些存储在excel文件或csv文件中(首选csv)。

我应该如何定义可以执行此任务的for循环?

我可以使用此函数A = textread('A0000.txt','%s')来读取一个文本文件,但我不知道应该如何将它放在for循环中。如果文件的名称是1.txt,2.txt,...,1000.txt则会更容易。

如果你能提供任何帮助,我将感激不尽。

2 个答案:

答案 0 :(得分:5)

您应该使用sprintf生成相关字符串:

for i=1:1000
    fileName = sprintf('A%04d.txt',i);
    A{i} = textread(fileName ,'%s')
end

%04d告诉sprintf该号码应该有前导零。

答案 1 :(得分:3)

以下内容生成当前目录中包含的txt文件列表。然后它读入所有文件。如果文件名不是连续的,这很有用。

filelist = dir([pwd() filesep '*.txt' ]);
fileNames = {filelist.name}';
nFiles = length(fileNames);

for i= 1:nFiles 
    TF{i} = textread(fileNames{i},'%s');  
end