Problem adding headers to a matrix and saving it in txt file
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Alex castilla
il 12 Apr 2018
Commentato: Alex castilla
il 13 Apr 2018
Hello everyone,
I have a matrix called data (2618x17) I would like to add headers to each column and save it in a TXT file. I did the following code but it doesn't work. Can someone help me fix this problem? Thanks!
headers={'Timestamp','PosX','PosZ','PosY','RotX','RotY','RotZ','RPosX','RPosZ','RPosY','RRotX','RRotY','RRotZ','velocity','acceleration','curvature','target_reached'};
newdata=[headers; num2cell(data)]; dlmwrite('file_treated.txt',newdata);
0 Commenti
Risposta accettata
Stephen23
il 12 Apr 2018
Modificato: Stephen23
il 12 Apr 2018
dlmwrite only writes numeric data: its help states that it "writes numeric data in array M...". You do not have a numeric array, you have a mixed cell array.
If you want to write mixed char/numeric (e.g numeric data with a header) then you could use xlswrite, writetable, or do-it-yourself with fprintf.
3 Commenti
Stephen23
il 12 Apr 2018
Modificato: Stephen23
il 12 Apr 2018
headers={'Timestamp','PosX','PosZ','PosY','RotX','RotY','RotZ','RPosX','RPosZ','RPosY','RRotX','RRotY','RRotZ','velocity','acceleration','curvature','target_reached'};
data = rand(4,17); % four rows of fake data.
fmt = repmat(',%.12g',1,size(data,2)); % pick numeric format to suit!
fmt = [fmt(2:end),'\n'];
[fid,msg] = fopen('temp4.csv','wt');
assert(fid>=3,msg)
fprintf(fid,'%s',headers{1})
fprintf(fid,',%s',headers{2:end})
fprintf(fid,'\n')
fprintf(fid,fmt,data.')
fclose(fid);
The file that this created is attached to this comment.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Spreadsheets in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!