我想循环遍历与提示相对应的文件

时间:2015-11-10 07:03:37

标签: matlab file for-loop text-files

我有几个文本文件:(participant1,participant2,participant3,.... participant5)

我使用循环制作了这些文件。我的循环是这样的:

%subinfo_vect是一个提示,允许用户输入它们的编号,因此每次都有新文件。     %将结果x y z h追加到文件

for i = 1
      empty_mat = zeros(0);
      filename=['participant', subinfo_vect, '.txt']; 
       dlmwrite(filename, [x,y,z,h], '-append'); 
    end

此代码创建与我们的提示(subinfo_vect)对应的文件。现在我想知道如何遍历这些文件(总共6个),以便我们可以捕获结果并找到它们的平均值。为了澄清结果,每个文件(txt)看起来像这样(下面),我需要找到第2列和第3列的平均值:

n =
    1.0000    1.0000    1.2986    1.3973
    1.0000         0    0.4159    0.5138
    1.0000    1.0000    0.3955    0.4924
    1.0000         0    0.3574    0.4539
    1.0000    1.0000    0.3489    0.4458
    1.0000    1.0000    0.4403    0.5372

如何循环显示如上所示的6个文件,以便我可以按顺序获得所有6个文件的平均值?有什么想法吗?

到目前为止我所拥有的是加载所有文件的手动输入。我通过添加:

手动阅读这些文件

dlmread('participant1.txt')< - 这是手动的,我希望计算机在没有给出命令的情况下自动完成,所以我可以输入一个循环文件​​夹,它会读取所有文件一?使用for循环? 能帮助我吗

2 个答案:

答案 0 :(得分:1)

假设您已将.txt文件保存在名为myFolder的文件夹中,则:

fileList=dir([myFolder '/*.txt']);
fileList={fileList.name}; %just extracting names for convenience.
for i=1:length(fileList)
    contents=dlmread([myFolder '/' fileList{i}]); %do something
end

答案 1 :(得分:0)

将变量looping_dir设置为包含保存文件的目录名的字符串,然后循环遍历它。你可以尝试这样的事情:

files = dir([looping_dir '*.txt']); % get files ending .txt in given directory
for f = 1:numel(files)
    data = dlmread([looping_dir files(f).name]);
    % do calculations...
end