MATLAB: How to write matrix to txt or excel file with specific precision

fprintfMATLAB

I have a 100*100 matrix that I need to save it in a txt or excel file with high precision. This the code I use:
fid = fopen('data.txt', 'w+');
for j = 1:size(s, 2)
for i = 1:size(s, 1)
fprintf(fid, '%2.20f \n', s(i,j));
end
end
The problem in the output, it saves all the values in one line. Any ideas.

Best Answer

You don't need a loop. Try this:
M = your matrix
fmt = repmat(',%2.20f',1,size(M,2));
fmt = [fmt(2:end),'\n'];
[fid,msg] = fopen('data.csv', 'wt');
assert(fid>=3,msg)
fprintf(fid,fmt,M.')
fclose(fid);