Column Header for .csv file [HELP]

Hi guys ,
How to add the Column Header to the first row of my table below ?
For example , column 1 = No , column 2 = IMC (%), column 3 = Status.
I use dlmwrite() to collect my data in txt . Then , use readtable() and writetable() export data to csv. Then , I try to put column header but failed.
My current code :
dlmwrite('Data.txt',[ No ' ' IMC ' ' Status],'-append','delimiter','');
T = readtable('Data.txt','readvariablenames',false);
writetable(T,'Results.csv');
Thanks! ^^

3 个评论

I deleted my answer to put your question on top of the list with no answers.
I failed to reproduce your results on R2016a.
so that is version problem right ( ?_?)

请先登录,再进行评论。

回答(1 个)

Try this, where I first write out the numerical data with csvwrite(), then I open the file and insert the column headers:
data = rand(5,3); % Create sample data
% Create filename.
fullFileName = fullfile(pwd, 'delete_me.csv'); % Whatever you want...
% First write out numerical data alone.
csvwrite(fullFileName, data)
% Now read back in entire file and save it.
txt = fileread(fullFileName)
% Open the file for output.
fid = fopen(fullFileName, 'wt');
% FIrst, write the column headers
fprintf(fid, 'No, IMC (%%), Status\n');
% Next, write the text we just read in, which is all the numerical data.
fprintf(fid, '%s', txt);
fclose(fid); % Close the file.
type(fullFileName); % Type to command window to see if it worked.

5 个评论

thanks for ur reply ... i will try ur ans later ^^ hopefully no version problem again. Im using r2015a.
Hi, i tried ur answer. still cant work ...
Error:
Error using fopen The file mode for fopen can not contain modes other than r, w, a, +, b, A, W or t.
Error in updateduitable>Start_analysis_Pushbutton_Callback (line 244) fid = fopen('Results.csv', 'wt ');
Code:
dlmwrite('Data.txt',[ No ' ' IMC ' ' Status],'-append','delimiter','');
T = readtable('Data.txt','readvariablenames',false);
writetable(T,'Results.csv');
txt = fileread('Results.csv' )
fid = fopen('Results.csv', 'wt ');
fprintf(fid, 'No, IMC (%%), Status\n ');
fprintf(fid, '%s', txt );
fclose(fid);
Notice that I did 'wt', not 'wt ' like you did. Why are you adding spaces after the strings I gave you?
sorry , it is my fault ... the header is ok already , but something wrong for the content (data)...
To read it back in you'll have to specify a row input argument in csvread() to skip the header line. You could also use the importdata() function.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Data Import and Export 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by