Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

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,

Thanks,

Amanda

2 Comments

Cedric Wannaz on 6 May 2013

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 (?)

Amanda on 6 May 2013

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

Amanda

Products

No products are associated with this question.

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.

2 Comments

Amanda on 6 May 2013

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

Cedric Wannaz on 6 May 2013

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

Cedric Wannaz

Contact us