MATLAB Answers


CSV: Create New Headerline

Asked by Amanda
on 6 May 2013

In a CSV file, I would like to replace (delete) a headerline, first line, and create a new headerline. So the CSV file is (for this example I applied extra spaces to make it more readable):

State,          Tornado,      Hurricane,    Earthquake,
Texas,              34,           5,             0,
Indiana,             8,           0,             2,
California,          2,           2,             20,
North Carolina,      1,          10,             1,

So now I need to delete the first headerline and replace it with a new headerline -- ST TOR HUR EAR -- see below:

    ST,            TOR,          HUR,        EAR,
    Texas,         34,           5,            0,
    Indiana,        8,           0,            2,
    California,     2,           2,           20,
    North Carolina, 1,          10,            1,




I still don't know whether there are commas in your CSV file or if the content is really like what is written in your question (?)

Yes -- there are commas. I will edit it.

Log in to comment.

1 Answer

Answer by Cedric Wannaz
on 6 May 2013
Edited by Cedric Wannaz
on 6 May 2013
 Accepted Answer

Assuming that there is no comma but tabs ( \t ) as delimiters, I give you one way to do it:

 % - Read input file data content (without header).
 fid_in = fopen('myFile.csv', 'r') ;             % Open input file for reading.
 fgetl(fid_in) ;                                 % Skip header line in input file.
 content = fread(fid_in) ;                       % Read rest of input file.
 fclose(fid_in) ;                                % Close input file.
 % - Write output file: new header + previous data content.
 fid_out = fopen('myFile_newHeader.csv', 'w') ;  % Open input file for writing.
 fprintf(fid_out, 'ST\tTOR\tHUR\tEAR\n') ;       % Output new header.
 fwrite(fid_out, content) ;                      % Output previous data content.
 fclose(fid_out) ;                               % Close output file.


WOW! Thanks. You have been one of the most helpful forum members. And most of all, I am learning so much.

You're welcome, I'm glad it helps!

Log in to comment.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today