我很难将一堆.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);
如果有人知道如何让这个工作,那么我将非常感激!
答案 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