Clear Filters
Clear Filters

Info

This question is closed. Reopen it to edit or answer.

Saving as a .txt file help

1 view (last 30 days)
Huseyin
Huseyin on 3 Mar 2014
Closed: MATLAB Answer Bot on 20 Aug 2021
I have a script like:
sample(1,:)='a ';
sample(2,:)='b ';
sample(3,:)='c ';
sample(4,:)='ab';
sample(5,:)='bc';
fid=fopen('MyFile.txt','w');
fprintf(fid,sample);
fclose(fid);
And when I run the file 'MyFile.txt', it shows in notepad like;
abcab bc
But I want it to show me like:
a
b
c
ab
bc
How can I do that? And one more question. I want to open 'MyFile.txt' automatically when I run the script. What command should I add?
Thanks...
  1 Comment
Kan-Hua
Kan-Hua on 3 Mar 2014
Can you elaborate your second question a bit more? I thought you've put the command that opens 'MyFile.txt' in your script, isn't it?

Answers (2)

Walter Roberson
Walter Roberson on 3 Mar 2014
fprintf(fid, '%c%c\n', sample.' );
  1 Comment
Huseyin
Huseyin on 3 Mar 2014
This time it shows me like;
a b c ab bc
I don't want it to show me in one row. Answers should have their each row.I mean it should look like 5x1 sized matrix in notepad

Kan-Hua
Kan-Hua on 3 Mar 2014
I would suggest you use cell array to store your strings with different lengths unless you have a particular reason to store them using string arrays.
By using the cell array, the code will look like
sample{1}='a ';
sample{2}='b ';
sample{3}='c ';
sample{4}='ab';
sample{5}='bc';
fid=fopen('MyFile.txt','w');
for i=1:length(sample)
fprintf(fid,'%s\n',sample{i});
end
fclose(fid);
  3 Comments
Kan-Hua
Kan-Hua on 3 Mar 2014
That's the issue of notepad. If you open 'MyFile.txt' using matlab's built-in editor, it will work fine.
If you insist using notepad, try:
fprintf(fid,'%s\r\n',sample{i});
Huseyin
Huseyin on 4 Mar 2014
Edited: Huseyin on 4 Mar 2014
Yes it works excellent now! Thanks!

This question is closed.

Community Treasure Hunt

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

Start Hunting!