循环加载 .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