MATLAB: How to add a new line in the middle of a text file

fprintfMATLABprinttext file

Hi all,
I have a text file in which I need to add a new line of text using Matlab. I know the number of the line, where the line should be inserted. However, I don't know how to create and fill a new line at this position. Can any of you help me out?
Thanks, Ellen

Best Answer

There is no "smart" way. One has to read the existing file and write the new. If the file isn't too large this could be a starting point.
fid = fopen( old_filespec );
cac = textscan( fid, '%s', 'Delimiter','\n', 'CollectOutput',true );
fclose( fid )
fid = fopen( new_filespec, 'w' );
for jj = 1 : insert_here
fprintf( fid, '%s\n', cac{jj} );
end
fprintf( fid, '%s\n', new_line );
for jj = insert_here+1 : length(cac)
fprintf( fid, '%s\n', cac{jj} );
end
fclose( fid );