Problem adding headers to a matrix and saving it in txt file
조회 수: 3 (최근 30일)
이전 댓글 표시
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
채택된 답변
Stephen23
2018년 4월 12일
편집: Stephen23
2018년 4월 12일
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
Stephen23
2018년 4월 12일
편집: Stephen23
2018년 4월 12일
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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Spreadsheets에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!