How to format numbers in exponential notation with base 1e3
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Julian Schäfer
am 6 Okt. 2020
Beantwortet: Star Strider
am 6 Okt. 2020
Hi,
I want to format numbers to a exponential notation with the base 1e3.
For example I have a vector a:
a = [25.12; 67.29; 120.00; 256.65; 501.58; 1366.26];
All numbers should have the same 5 digits with a precision of 4 in exponential notation with the base 1e3. So the output should be:
b = 1e3 * [0.0251 0.0673 0.1200 0.2567 0.5016 1.3663];
Does anybody know how to do this?
Thanks!
0 Kommentare
Akzeptierte Antwort
Star Strider
am 6 Okt. 2020
This will correctly calculate tha mantissas:
rfxm = @(x,xpnt) [sign(x).*10.^(log10(abs(x))-xpnt)]; % Anonymous Function Creating Reformatted Number
so:
a = [25.12; 67.29; 120.00; 256.65; 501.58; 1366.26];
xpnt = +3;
Out = rfxm(a,xpnt)
produces:
Out =
0.0251
0.0673
0.1200
0.2567
0.5016
1.3663
This is as close as I can get to your desired output:
Out = [sprintf('1e%d * [',xpnt) sprintf('%.4f\t', rfxm(a.',xpnt)) ']']
.
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical 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!