What to do when MatLab loses format longE midway and no longer outputs scientific notation?

4 visualizzazioni (ultimi 30 giorni)
MatLab loses format longE midway through the calculation and no longer expresses numerical output using scientific notation. What to do next??
First line of code implements 'format longE'. Calculation proceeds with output expressed in scientific notation. Somewhere towards the last part of the code, numerical output reverts and is expressed in decimal format; it's no longer format longE. Even inserting a second 'format longE' before the loss point doesn't help. What to do next??

Risposte (3)

Star Strider
Star Strider il 6 Lug 2016
Modificato: Star Strider il 6 Lug 2016
I can’t say for certain because I don’t have your code or data. The documentation for format notes:
  • MATLAB always displays integer data types to the appropriate number of digits for the data type. For example, MATLAB uses 3 digits to display int8 data types (for instance, -128:127). Setting the output format to short or long does not affect the display of integer-type variables.
  • Integer-valued, floating-point numbers with a maximum of 9 digits do not display in scientific notation.
That’s the only possibility I can think of (other than some function resetting the format) that could do what you’re seeing. In that event, it’s not the format but the data type that’s resulting in the display difference.

Steven Lord
Steven Lord il 6 Lug 2016
At the point where you "lose" format longe, does the type of the data you're displaying change? For instance, are your variables now sym or a fixed-point type instead of double?

Anthony DeGance
Anthony DeGance il 6 Lug 2016
Star Strider,
Thank you for your input. I see now that I should have specified that I'm outputing numeric non-integer data with vpa, e.g. ChekSumNorm = 1.1754943508222875079687365372222e-38, really ugly looking stuff. Because I'm summing infinite series, the numeric output is expressed scientifically from the get-go. But I will follow up on your suggestion to examine the output data types which are a mix of double and sym.
  1 Commento
Star Strider
Star Strider il 6 Lug 2016
The Symbolic Math Toolbox precision is governed by the digits function. Casting them to double converts them to the default 64-bit representation.

Accedi per commentare.

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by