从多个文件夹中加载多个文本文件

时间:2014-04-28 17:14:24

标签: matlab

我正在忙于研究,我将使用Matlab来研究数据。 但是我在将所有文本文件加载到Matlab时遇到了麻烦,而没有使用疯狂的长代码!

设置如下:

Testsubject1/ts1_bla.txt
Testsubject2/ts2_bla.txt

我自己使用荷兰语句子,但我想例程是相同的,因为bla部分是几个文件。

我可以将此代码用于1个目录,但是我必须每次都切换目录以加载数据:

files = dir('.\Proefpersoon1\*.txt');
for i=1:length(files)
    eval(['load ' files(i).name ' -ascii']);
end

我也不介意只将它们保存为数组,但是有没有办法用它做一个循环?

files = dir('.\Proefpersoon1\*.txt');

1 个答案:

答案 0 :(得分:0)

重复:How to get all files under a specific directory in MATLAB?

功能如下:

function fileList = getAllFiles(dirName)

  dirData = dir(dirName);      %# Get the data for the current directory
  dirIndex = [dirData.isdir];  %# Find the index for directories
  fileList = {dirData(~dirIndex).name}';  %'# Get a list of the files
  if ~isempty(fileList)
    fileList = cellfun(@(x) fullfile(dirName,x),...  %# Prepend path to files
                   fileList,'UniformOutput',false);
   end
  subDirs = {dirData(dirIndex).name};  %# Get a list of the subdirectories
  validIndex = ~ismember(subDirs,{'.','..'});  %# Find index of subdirectories
                                           %#   that are not '.' or '..'
  for iDir = find(validIndex)                  %# Loop over valid subdirectories
    nextDir = fullfile(dirName,subDirs{iDir});    %# Get the subdirectory path
    fileList = [fileList; getAllFiles(nextDir)];  %# Recursively call getAllFiles
  end

end