Formatting of result values.
2 views (last 30 days)
For example, x=0.0012345678.
How can I get x to be in the format 0.123457*10^(-2). There are six significant digits and if more than six decimal places, which are converted to standard format by rounding.
Star Strider on 18 Sep 2022
That is not a format MATLAB will do automatically.
I wrote a utility function for my own use for such requirements —
lod = 1;
rfd = @(x,lod) [x*(10.^(-fix(log10(x)-lod+1))), fix(log10(x)-lod+1)]; % Anonymous Function Creating Reformatted Number
Out = sprintf('%.6fE%+d', rfd(x,lod)) % Character Vector With Formatted Output
Experiment with it if necessary. MATLAB maintains full precision internally regardless of the way the numbers are formatted.
More Answers (1)
John D'Errico on 18 Sep 2022
You cannot write it in that form, at least not easily. Yes, you could write a formatting code. But you would need to write it, separating out the exponent, then building it as a string.
You CAN use an exponential format, like this:
format short e
But if you want that specific 10^-2 form, that will take more work.