Read one column only of a large file, line by line?
Show older comments
I have a large table e.g. 7836x72001. I am interested in extracting the first column from the table which is a vector of datenumbers. Would there be a way of doing this quickly rather than waiting to load in the entire file?
I have considered using fopen and fgetl but this is taking a long time.
folder=('Y:\SoundTrap\Boats\PSD Output\Duty cycle data\');
files = dir(fullfile(folder,'*.csv'));
nf = length(files);
i=1;
a=1;
for i = 1:nf
filename = files(i).name;
disp(filename);
try
fid=fopen(fullfile(folder,filename));
tline=fgetl(fid); %read first line (column headers)
a=1; %relevant row of new table we are adding data to
while ~feof(fid) %read every row until last row reached
tline=fgetl(fid); %read next line
t=tline(1);
output(a)=t;
a=a+1;
end
writetable(a,fullfile('L:\PSD output\Boats\Duty cycle data\TVEC',strcat('TVEC_', filename)));
end
Accepted Answer
More Answers (1)
Seth Furman
on 30 Oct 2020
0 votes
You might also want to consider using a tall table.
Categories
Find more on Text Files in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!