我有一个包含多个文本文件的文件夹(标记为xxxxxds.text,其中x' s是数字),其中包含数据。文本文件中的数据排列为3列,文本文件的第一行由标题组成,每列一个。我想要做的是,打开文件夹并读取文本文件#1说并执行一些处理,如删除第一行并将其余数据存储在三个单独的变量中(每列一个),然后移动到第二行文件并执行相同的操作并继续执行直到到达结束文件。
我没有太多的成功。这是我(失败)的尝试:
dir_folder ='D:\datat_folder';
files = dir(dir_folder);
files = files(arrayfun(@(x) ~strcmp(x.name(1),'.'),files)); % Remove hidden files
dir_length=length(files);
for steps=1:dir_length % for loop
point=[files,num2str(steps),'*.txt']
[A,B,C] = textread(point,'%f %f %f' , 2);
end
如果有人有任何建议,我将不胜感激。
干杯。
答案 0 :(得分:1)
要获得所需的文件名,您可以使用dir
命令更具体:
dir_folder ='D:\datat_folder\'; %note the '\' at the end
fnames = dir([dir_folder '*.text');
然后,像你一样循环遍历每个文件,但稍微改变你的textread
命令:
for Ifile = 1:length(fnames)
fname = fnames(Ifile).name;
%load the text data while using the 'headerlines' option to ignore the first line of data
[A,B,C]=textread(fname,'%f %f %f','headerlines',1);
%do your processing here
% blah blah blah
end