我正在忙于研究,我将使用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');
答案 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