I'm trying to create a loop in which i can extract 4 columns and multiple rows from 18 difference txt files and save the extracted data in one file. Is this possible? This is my code from one file

1 Ansicht (letzte 30 Tage)
fid1 = fopen('filename');
loopdata = textscan(fid1, '%f %f %f %f', 'delimiter',',','headerlines', 86);
fclose(fid1);
loopdata
field = loopdata{1};
moment = loopdata{2};
fieldAdjusted = loopdata{3};
momentAdjusted = loopdata{4};

Antworten (1)

George
George am 26 Okt. 2016
Untested, but this should basically work. Get an array of filenames with ls
files = ls('*.txt');
for ii=1:numel(files)
fid1 = fopen(files(ii));
loopdata = textscan(fid1, '%f %f %f %f', 'delimiter',',','headerlines', 86);
fclose(fid1);
% change this to saving data in arrays, this replaces everything every time
field = loopdata{1};
moment = loopdata{2};
fieldAdjusted = loopdata{3};
momentAdjusted = loopdata{4};
end
T = table(field, moment, fieldAdjusted, momentAdjusted);
writetable(T, 'mycombinedfile.txt');
If the files are very large you can look into datastore

Kategorien

Mehr zu Data Import and Export finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by