Write cell array, table into text file?

8 views (last 30 days)
Peter Fang
Peter Fang on 23 Apr 2022
Edited: Stephen23 on 23 Apr 2022
hello again guys.
I have 1 question: I used cell2table to be able to use writetable, but the output data stick together, it doesn't match the model given by the teacher.
My result name: exe.txt
The result the teacher needs: result_example.txt
I'm asking myself, if I concatenate the words in cell array H will it solve the problem?
I will leave the resulting file and image below, including the m file of the function.
Hope you can help. Thank you.
P/s: I use R2018a
  1 Comment
Stephen23
Stephen23 on 23 Apr 2022
@Peter Fang: please upload log.txt by clicking the paperclip button.
Does your teacher really need a fixed width file separated by varying numbers of tabs? It would be much much simpler if they accepted a fixed-width file separated by space characters.

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 23 Apr 2022
Edited: Stephen23 on 23 Apr 2022
Fake data just for testing the code:
dtm = datetime(2021,3,[1;2;31],'Format','dd-MM-yyyy')
dtm = 3×1 datetime array
01-03-2021 02-03-2021 31-03-2021
num = [15;10;2]
num = 3×1
15 10 2
Connvert data (from table or whatever you have) into one cell array:
tmp = num2cell(reshape(dtm,1,[]));
tmp(2,:) = num2cell(num);
Header:
hdr = {'Ngay','So luong'};
hdr = regexprep(hdr,' ','\a');
Now print fixed-width text using tab separator:
str = [...
sprintf('%-16s%-s\n',hdr{:}),...
sprintf('%-16s%-u\n',tmp{:})];
str = regexprep(str,' {1,4}','\t');
str = regexprep(str,'\a',' ');
[fid,msg]= fopen('result.txt','wt');
fprintf(fid,'%s',str);
fclose(fid);
Check file content:
type result.txt
Ngay So luong 01-03-2021 15 02-03-2021 10 31-03-2021 2
It is a shame that FPRINTF does not have an option for padding with tabs.
  1 Comment
Peter Fang
Peter Fang on 23 Apr 2022
Thank you <3. I tried it and it worked.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 23 Apr 2022
Try writecell().
  1 Comment
Peter Fang
Peter Fang on 23 Apr 2022
Impossible. I tried but it doesn't exist in 2018 version

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!