MATLAB load 2nd column of all files into matrix
1 次查看(过去 30 天)
显示 更早的评论
I have a folder with a lot of files of the form: defects_*.txt
Assuming the path to the directory containing these files is C:/Path, how can I load all the files into MATLAB, and create a matrix that contains the 2nd column of each file in the directory.
So basically, I don't care about column 1, but I want to load in the files sequentially, defects_002.txt, defects_005.txt, etc. (no constant increment), and then take the 2nd column from each of these txt files, and paste them as separate columns in a new matrix. So I will have a new matix where column 1 is the 2nd column of defects_0.002.txt, column 2 is the 2nd column of defects_0.005.txt etc. Is this possible?
2 个评论
回答(1 个)
Walter Roberson
2018-9-20
Reading only the second column can be done in a number of different ways, depending upon the format of the data. One possible way is to use csvread with the r and c parameters both set to 1 -- the r being 1 to skip 1 header row, and the c being 1 to skip 1 column.
6 个评论
Walter Roberson
2018-9-20
projectdir = 'C:/Path';
dinfo = dir( fullfile(projectdir, 'defects_*.txt') );
filenames = fullfile(projectdir, {dinfo.name});
nfiles = length(filenames);
data = [];
for K = 1 : nfiles
fid = fopen(filenames{K}, 'rt');
thisdata = cell2mat( textscan(fid, '%*f%f', 'HeaderLines', 1) );
fclose(fid);
data(1:length(thisdata), K) = thisdata;
end
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Language Support 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!