write to file in exponential notation

16 views (last 30 days)
Maider Marin
Maider Marin on 2 Apr 2011
Iam writing a variable r to file using the following code
r= [0.000452403093670532 0.000445718222208873];
str='test.txt';
str1=['r =',mat2str(r)];
dlmwrite(str,str1,'-append', 'delimiter', '', 'precision','%-6.6e','newline', 'pc');
but no matter how I try always write it in decimal notation. I want to write it in exponential notation somenthing like
r= [4.524e-4 4.457e-4];
any help will be grately appreciated!!

Answers (3)

Matt Fig
Matt Fig on 2 Apr 2011
Try FPRINTF instead of DLMWRITE.
  1 Comment
Maider Marin
Maider Marin on 3 Apr 2011
I try this one but the formating was not easy, since I need in the file
r=[ 1st value 2nd value] and then I got r=[ 1st value r=[ 2nd value I guest I could work it out but I did not see it right away

Sign in to comment.


bym
bym on 2 Apr 2011
how about
strl = sprintf('r = %5.4e %5.4e ',r)
  1 Comment
Maider Marin
Maider Marin on 3 Apr 2011
The problem is that the real r has 2400 entries, and I do not think I can do that with this

Sign in to comment.


Maider Marin
Maider Marin on 3 Apr 2011
Iam writing a variable r to file using the following code
r= [0.000452403093670532 0.000445718222208873];
str='test.txt';
str1=['r =',mat2str(r)];
dlmwrite(str,str1,'-append', 'delimiter', '', 'precision','%-6.6e','newline', 'pc');
I think I figure it out. The problem is with mat2str(r) I am not specifiying format, so it takes the original format and when I use dlmwrite that format does not work because it is already a string. I redo the code I got something like
r= [0.000452403093670532 0.000445718222208873];
str='test.txt';
str1=['r =',num2str(r,'%6.3e\t\t')];
dlmwrite(str,str1,'-append', 'delimiter', '','newline', 'pc');
Thanks for your answers

Categories

Find more on Numeric Types in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!