Copy the same rows from multiple identical files to a single file
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello,
I have 300 files which have similar structure. I am interested in rows 82-nd and 90-th in each file.
The 82-nd row is:
# span 1 = -0.193, 1.980
The 90-th row is:
# span 9 = 0.000, 557.000
I would like to copy the last number from rows 82 and 90 next to each other, also append those values from each file, like so:
output-file:
1.980 557.00
2.568 687.50
1.158 496.03
............
It would also be fine if I could copy the 82nd and 90th row to new single file and "append" the next files to that single file.
Like so:
# span 1 = -0.193, 1.980
# span 9 = 0.000, 557.000
# span 1 = -0.193, 2.568
# span 9 = 0.000, 687.50
# span 1 = -0.193, 1.158
# span 9 = 0.000, 496.03
....
2 Kommentare
ANKUR KUMAR
am 12 Mär. 2021
Could you please attach one of your files. It would help us to help you.
Akzeptierte Antwort
ANKUR KUMAR
am 12 Mär. 2021
Sicne you have not attached any sample file, I am using a file having 5 rows, and extracting 2nd and 5th rows from these. Attached these files for your reference.
F=dir('*.txt')
Row = [2,5];
formatSpec = '%1s%5s%2s%2s%12s%11s%s%[^\n\r]';
for kk=1:length(F)
fileID = fopen(F(kk).name,'r');
dataArray = textscan(fileID, formatSpec, 2, 'Delimiter', '', 'WhiteSpace', '', 'HeaderLines', Row(1)-1, 'ReturnOnError', false, 'EndOfLine', '\r\n');
A{kk}=cat(2,dataArray{:});
end
out=cat(1,A{:})
%copying the last number in a matrix
mat=reshape(str2double(out(:,6)),2,[])'
%saving the rows in a text file
dlmcell('sample.txt',out)
4 Kommentare
ANKUR KUMAR
am 12 Mär. 2021
Bearbeitet: ANKUR KUMAR
am 12 Mär. 2021
I forgot to mention. You will get this function on a file exchange.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Data Import from MATLAB 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!