write to file in exponential notation

18 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

Tags

Community Treasure Hunt

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

Start Hunting!