Format exponent notation: start with 0

조회 수: 11 (최근 30일)
Arjan Lampe
Arjan Lampe 2021년 4월 29일
댓글: dpb 2021년 4월 29일
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)
  댓글 수: 4
dpb
dpb 2021년 4월 29일
Yes, that's what P multiplier does...changes the displayed scaled factor for the exponent.
dpb
dpb 2021년 4월 29일
Yes, that's what P multiplier does...changes the displayed scaled factor for the exponent.

댓글을 달려면 로그인하십시오.

답변 (1개)

Star Strider
Star Strider 2021년 4월 29일
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_1 = '-763.9297000E-004'
Result_2 = sprintf('%+015.7fE%+04d', expstr(a,4))
Result_2 = '-000763.9297000E-004'
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
Arjan Lampe
Arjan Lampe 2021년 4월 29일
Ok, but then I need to know the value for the exponent ahead of printing. In principle it can work though, not as simple as I had hoped...
Star Strider
Star Strider 2021년 4월 29일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Fortran with MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by