Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Print number as .0000000E+00

Asked by Hamilton on 18 Jun 2013

I would like to print a number with the following format:

.0000000E+00

MATLAB prefers the following:

0.0000000E+000

Is there a way to solve this issue?

0 Comments

Hamilton

Products

No products are associated with this question.

2 Answers

Answer by Jan Simon on 18 Jun 2013
Accepted answer

2 Comments

Hamilton on 19 Jun 2013

This is helpful removing the leading zero. Is there a way to maintain the exponential format? I think i can take care of the E+000 to E+00 issue by simply using some string modification functions.

Jan Simon on 19 Jun 2013

Perhaps something like this:

char(java.text.DecimalFormat('#,##0.###E00').format(0.1));
Jan Simon
Answer by Pourya Alinezhad on 18 Jun 2013
fprintf('%1.5s',0.1)
1.5 stands for 5 decimal places.1 is for full number.
s==scientific
you could easily find a way to this problem if you were a c proogrammer...

3 Comments

Jan Simon on 18 Jun 2013

No, according to the documentation '%s' means 'string', not 'scientific'. I assume you mean '%e' for the scientific notation.

But to my surprise the output is exactly the same (tested under 2009a, 2011b). This means that '%s' has the undocumented feature to act like '%e' when it gets numbers as input. Strange.

Anyhow, Hamilton asks for an omitted leading zero and a 2 digit exponent. While the first is ugly and provokes unexpected errors, such that it will hopefully not implemented, the second is the default in non-PC versions of Matlab and in the newest release R2013a.

Pourya Alinezhad on 18 Jun 2013

actually i didn't checked this code in matlab.i used to code in this way in turbo c.and i per-assumed that this is true in matlab :)

Jan Simon on 19 Jun 2013

@Pourya: And obviously your assumption is not really wrong. Thanks for this interesting new piece of information.

Of course TMW did not implement fprintf from scratch but relies on existing libraries. Therefore even known bugs like buffer overflows and other undocumented features like %s with numbers appear in Matlab.

Pourya Alinezhad

Contact us