Write data to csv, headings start with numbers

조회 수: 5 (최근 30일)
Pippa Williams
Pippa Williams 2018년 7월 26일
댓글: Walter Roberson 2018년 7월 27일
I want to write some data to .csv file, but the headers I need (to keep the format the same as previous files) start with numbers. So I guess I have to write the first line as a char vector, and then write the data.
I tried:
writeTable(OutputData,OutputFileName);
NewHeaderLine = 'DateTime,40cumecs,50cumecs,60cumecs,70cumecs,80cumecs';
fid = fopen(OutputFileName,'w');
fprintf(fid,'%s\n',NewHeaderLine);
fclose(fid);
But this clears the additional data. How can I write both data and non-standard text to a .csv file? I've looked at a bunch of help files but all seem to append numeric data rather than text, so they don't apply in this case.

답변 (1개)

Walter Roberson
Walter Roberson 2018년 7월 26일
Perhaps write the header first like you do, and then use dlmwrite() with -append
  댓글 수: 2
Pippa Williams
Pippa Williams 2018년 7월 27일
Thanks, that nearly gets me there but my data includes DateTime values, and I don't think dlmwrite() can handle strings? Is there some other way I can write data that includes strings?
I thought maybe it would work better if I convert all my data to a string array before I write it?
Walter Roberson
Walter Roberson 2018년 7월 27일
Unfortunately writetable() cannot append to text files.
Sometimes the easiest way is to write the two parts (header and table) to different files and then use operating system utilities to splice them together. In particular for MS Windows,
system('copy FileName1+FileName2 FileName3')
effectively appends FileName1 and FileName2 to form FileName3

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Text Files에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by