将多个 .dat 文件读入 MatLab

Reading multiple .dat files into MatLab

我很难将一堆 .dat 文件读入 MatLab。我已经尝试 Google 这个问题,但一小时后我仍然无法让我的代码工作。我总共有 141 个 .dat 文件。每个文件包含三行 header 信息(我不想包括在内),然后是一堆行,每行包含三列数字。我想将所有 .dat 文件中的行合并到一个包含所有行和三列的大矩阵中(因为所有 .dat 文件中的每一行都包含三个数字)。这是我尝试使用的代码:

d = dir('C:\Users\Kristian\Documents\MATLAB\polygoner1\');
out = [];
N_files = numel(d);
for i = 3:N_files
    fid = fopen(d(i).name,'r');
    data = textscan(fid,'%f%f%f','HeaderLines',3);
    out = [out; data];
end

但是,当我尝试 运行 代码时,我收到了错误消息

??? Error using ==> textscan
Invalid file identifier.  Use fopen to generate a valid file identifier.

Error in ==> readpoly at 6
    data = textscan(fid,'%f%f%f','HeaderLines',3);

如果有人知道我如何让它工作,那么我将非常感激!

问题是当您使用 fopen 时,您没有给出文件的完整路径

path = 'C:\Users\Kristian\Documents\MATLAB\polygoner1\'
d = dir(path);

....

%as @craigim advised it, otherwise you can use strcat
my_file = fullfile(path, {d.name}) 
for i = 3:N_files
    fid = fopen(my_file{i},'r');

    ....

    fclose(fid);
end