Formatting of result values.

조회 수: 2 (최근 30일)
Jiapeng
Jiapeng 2022년 9월 18일
답변: John D'Errico 2022년 9월 18일
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.
Thank you!

채택된 답변

Star Strider
Star Strider 2022년 9월 18일
That is not a format MATLAB will do automatically.
I wrote a utility function for my own use for such requirements —
x=0.0012345678;
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
Out = '0.123457E-2'
Experiment with it if necessary. MATLAB maintains full precision internally regardless of the way the numbers are formatted.
.

추가 답변 (1개)

John D'Errico
John D'Errico 2022년 9월 18일
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
x=0.0012345678
x =
1.2346e-03
But if you want that specific 10^-2 form, that will take more work.

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by