How to format numbers in exponential notation with base 1e3
11 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Julian Schäfer
il 6 Ott 2020
Risposto: Star Strider
il 6 Ott 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 Commenti
Risposta accettata
Star Strider
il 6 Ott 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 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!