Format exponent notation: start with 0
18 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
If I print a floating point f in exponential notation, I get, say:
>> sprintf('%10.3E',f)
ans =
' 2.091E+05'
Can Matlab always make the leading digit a zero, always, so:
>> sprintf('%someMagicHere',f)
ans =
' 0.209E+06'
I want this irrespective of the exponent.
(I know you print less significant digits this way)
Antworten (1)
Star Strider
am 29 Apr. 2021
I am not certain what you are asking.
I wrote a little utility function for my own use a while back to do something like this —
a=-0.07639297;
expstr = @(x,n) [x(:).*10.^(-n*floor(log10(abs(x(:)))/abs(n))) n*floor(log10(abs(x(:)))/abs(n))];
Result_1 = sprintf('%+0.7fE%+04d', expstr(a,4))
Result_2 = sprintf('%+015.7fE%+04d', expstr(a,4))
Putting a leading 0 in the format (just after the %) willl fill the numeric filed to the left of the decimal with leading zeros. See Optional Operators in the formatSpec section of the sprintf documentation.
Experiment with it to get the result you want.
2 Kommentare
Star Strider
am 29 Apr. 2021
It depends on what you want to do. The examples posted originally had different exponents, and my utility function allows that to change.
The format descriptor syntax is the same, regardless. That is a property of sprintf, fprintf, and others (such as compose) that share that syntax.
Siehe auch
Kategorien
Mehr zu Workspace Variables and MAT-Files finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!