How to save a matrix as text file?

I want to save a matrix as text file.
Each column should be separated by tab.
The output file should be read with any text editor
When the output is opened, it should display the numbers
in the same way it looks like in Matlab.
Thank you for your help
Emerson

 Accepted Answer

One way is to use FPRINTF.
A = round(rand(6,7)*9) % Write this to file.
fid = fopen('Mymatrix.txt','wt');
for ii = 1:size(A,1)
fprintf(fid,'%g\t',A(ii,:));
fprintf(fid,'\n');
end
fclose(fid)
EDIT
Changed the 'w+' to 'wt' in the FOPEN call.
If you have floating point numbers, you may want to use '%20.18f \t' instead of '%g\t' or similar. See FPRINTF for format specifiers.

More Answers (3)

doc dlmwrite
doc fwrite

2 Comments

dlmwrite is not recommended. Use writematrix instead.
writematrix() did not exist in 2011 when the answer was posted.

Sign in to comment.

You could also consider dlmwrite telling it to use \t as the delimiter.
You could also consider using
save('MyMatrix.txt', 'A', '-double', '-tab')
Where A is the name of the variable

3 Comments

CreLox
CreLox on 22 Mar 2018
Edited: CreLox on 22 Mar 2018
Should be:
save('MyMatrix.txt', 'A', '-ascii', '-double', '-tabs')
what is the "double" part for?
double precision. Without the -double only about 7 digits are written out, about as much as needed to reproduce single precision numbers.

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!