how to print E formated numbers.

4 visualizaciones (últimos 30 días)
Pappu Murthy
Pappu Murthy el 8 de Mzo. de 2018
Comentada: Star Strider el 8 de Mzo. de 2018
I have numbers such as 0.1032E-02 (say) If I read this as x = 0.1032E-02 and save it to a text file using fopen, and fprintf fid = fopen('Testing.txt','wt'); fprintf(fid, '%15.5E\n',x) it always prints x as 1.032E-03 but I would like the 0 in front just as the way I assigned the value to x. How do i do it?
  2 comentarios
Stephen23
Stephen23 el 8 de Mzo. de 2018
Editada: Stephen23 el 8 de Mzo. de 2018
@Pappu Murthy: Numeric data classes do not store any formatting, so printing a number "just as the way I assigned the value to x" is not possible in general: a value will simply be displayed according to the fprintf specification. With that in mind: if you need to convert to numeric, do you always want a leading zero in the printed output?
Pappu Murthy
Pappu Murthy el 8 de Mzo. de 2018
Yes. I want the numbers printed as 0.0000E-nn format with leading zero. But fprintf does not let the leading zero.

Iniciar sesión para comentar.

Respuesta aceptada

Star Strider
Star Strider el 8 de Mzo. de 2018
Try this little utility anonymous function I wrote a while back to solve this exact problem:
a = 0.1032E-02
expstr = @(x) [x*10.^floor(-log10(abs(x))) floor(log10(abs(x))+1)];
Result = sprintf('%.7fE%+03d', expstr(a))
Result =
'0.1032000E-02'
  5 comentarios
Pappu Murthy
Pappu Murthy el 8 de Mzo. de 2018
It worked like charm. I am going to use this now. Thanks for all the help.
Star Strider
Star Strider el 8 de Mzo. de 2018
As always, my (our) pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Argument Definitions en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by