将多个.dat文件读入MatLab

时间:2015-07-08 12:19:05

标签: matlab file import

我很难将一堆.dat文件读入MatLab。我曾试图谷歌解决这个问题,但一小时后我仍然无法让我的代码工作。我总共有141个.dat文件。每个文件由三行标题信息(我不想包括)组成,然后是一堆行,每行包含三列数字。我想将所有.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);

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

1 个答案:

答案 0 :(得分:1)

问题是当您使用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