Write data from for loop into a file

3 次查看(过去 30 天)
I want to write a file that displays the following output:
period 1 step 1
save
period 1 step 2
save
period 2 step 1
save
The for loop creates the correct output I want but creates an empty .txt file.
for i=1:951
for j=1:2
s=fprintf('period %d step %d \n\tsave\n',i,j);
end
end
fileID = fopen('SA_SP951.txt','w');
fprintf(fileID,s);
fclose(fileID);

采纳的回答

Stephen23
Stephen23 2018-10-17
编辑:Stephen23 2018-10-17
You need to open the file before the loop, print the text inside the loop, and close the file after the loop:
[fid,msg] = fopen('SA_SP951.txt','wt');
assert(fid>=3,msg)
for ii = 1:951
for jj = 1:2
fprintf(fid, 'period %d step %d \n\tsave\n', ii, jj)
end
end
fclose(fid);
Or alternatively you could collect the character vectors that you generate inside loop into one array (e.g. a cell array) (which seems to be what you were trying to do), but this would be more complex, less efficient, and has no obvious benefit for your requirements.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

标签

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by