循环加载 .dat 文件
Loop to load .dat files
我想加载存储在文件夹中的 13 个 .dat 文件。这样做时:
dir 'C:\modelana\psteptrue\' %folder where are the files I want to load
myFiles = dir ('*.dat');
for days=1:13
myData = load(myFiles(days).name);
end
我只能在我的工作区中获取文件夹中的最后一个文件。就像它检测到我想阅读的所有文件一样。但是我只得到最后一个存储的数据
我错过了什么?
欢迎使用 Whosebug。我在完整代码中总结了@rinkert 的解决方案,以指出您的代码还有其他改进空间。
让一切变得灵活。也就是说,您可以使用函数 fullfile
来构建适合您的操作系统的路径。特别是在加载文件时,它们需要位于您的工作目录中。下面这样,哪里都可以开店=)
循环也是如此。选中要查看的变量的length
。
最后,在循环之前分配内存。因为 MATLAB 一致地存储数据,因此如果变量增长,则必须将其复制到 RAM 中的不同位置。
% path to folder
p2fldr = 'C:\modelana\psteptrue';
% get list of files with a certain extension
Lst = dir( fullfile(p2fldr,'*.dat') );
% allocate memory
myData = cell(length(Lst),2);
% loop through files
for i = 1:length(Lst)
% create path 2 file
p2fl = fullfile(Lst(i).folder,Lst(i).name);
% load file
Dat = load( p2fl );
% assign loaded date to cell-array
myData{i,1} = Dat;
% you may wan to keep the corresponding path/filename
myData{i,2} = p2fl;
end
我想加载存储在文件夹中的 13 个 .dat 文件。这样做时:
dir 'C:\modelana\psteptrue\' %folder where are the files I want to load
myFiles = dir ('*.dat');
for days=1:13
myData = load(myFiles(days).name);
end
我只能在我的工作区中获取文件夹中的最后一个文件。就像它检测到我想阅读的所有文件一样。但是我只得到最后一个存储的数据
我错过了什么?
欢迎使用 Whosebug。我在完整代码中总结了@rinkert 的解决方案,以指出您的代码还有其他改进空间。
让一切变得灵活。也就是说,您可以使用函数 fullfile
来构建适合您的操作系统的路径。特别是在加载文件时,它们需要位于您的工作目录中。下面这样,哪里都可以开店=)
循环也是如此。选中要查看的变量的length
。
最后,在循环之前分配内存。因为 MATLAB 一致地存储数据,因此如果变量增长,则必须将其复制到 RAM 中的不同位置。
% path to folder
p2fldr = 'C:\modelana\psteptrue';
% get list of files with a certain extension
Lst = dir( fullfile(p2fldr,'*.dat') );
% allocate memory
myData = cell(length(Lst),2);
% loop through files
for i = 1:length(Lst)
% create path 2 file
p2fl = fullfile(Lst(i).folder,Lst(i).name);
% load file
Dat = load( p2fl );
% assign loaded date to cell-array
myData{i,1} = Dat;
% you may wan to keep the corresponding path/filename
myData{i,2} = p2fl;
end