MATLAB: How to remove lines in a .txt file

txt file delete remove edit write read

Hello,
Basically, I have a .txt file in which I have a first string of characters, a second string of characters divided in 5 columns and finally the following lines are divided in 5 columns as well and filled with numbers.
As a scheme explains better than my bad english, the layout is the following one :
Nodal displacements (DX,DY,DZ) [Code 163] (Vibration Mode Number)
Node Component X Component Y Component Z Modulus
11424 1 -0.1784254 -0.14097163 1.02552846
11428 0.99940151 -0.17841142 -0.14048249 1.02487528
11427 0.99868083 -0.17837693 -0.13998173 1.02409795
11426 0.99781752 -0.17834243 -0.13945551 1.02317821
11425 0.99682903 -0.17832828 -0.13891853 1.02213867
11423 0.97537661 -0.17893241 -0.14097127 1.0016233
11437 0.97482145 -0.17892055 -0.14049338 1.00101339
...
I'd like to develop a routine that reads and writes the .txt file to delete the two first lines of characters, i.e.,
Nodal displacements (DX,DY,DZ) [Code 163] (Vibration Mode Number)
Node Component X Component Y Component Z Modulus ,
to be able to have a 5-columns array with nothing but only numbers that I can load in Matlab…
Thanks in advance. O.

Best Answer

If you read the file using TEXTREAD, you don't need to have the file truncated first, because you can tell TEXTREAD to skip a given number of header lines. Look at the doc for this function and the parameter named 'headerlines'. Example:
[node, X, Y, Z, modulus] = textread('myFile.txt', '%f %f %f %f %f', ...
'headerlines', 2) ;
If you really want to remove 2 lines from a file, you can build a solution around:
fid = fopen('myFile.txt', 'r') ; % Open source file.
fgetl(fid) ; % Read/discard line.

fgetl(fid) ; % Read/discard line.
buffer = fread(fid, Inf) ; % Read rest of the file.
fclose(fid)
fid = fopen('myFile_truncated.txt', 'w') ; % Open destination file.
fwrite(fid, buffer) ; % Save to file.
fclose(fid) ;