Write cell array, table into text file?

13 vues (au cours des 30 derniers jours)
Peter Fang
Peter Fang le 23 Avr 2022
Modifié(e) : Stephen23 le 23 Avr 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 commentaire
Stephen23
Stephen23 le 23 Avr 2022
Modifié(e) : Stephen23 le 23 Avr 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.

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 23 Avr 2022
Modifié(e) : Stephen23 le 23 Avr 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 commentaire
Peter Fang
Peter Fang le 23 Avr 2022
Thank you <3. I tried it and it worked.

Connectez-vous pour commenter.

Plus de réponses (1)

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

Connectez-vous pour commenter.

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by