convert large number to smaller

7 visualizzazioni (ultimi 30 giorni)
Lieke Numan
Lieke Numan il 10 Mag 2019
Commentato: Star Strider il 10 Mag 2019
I have a large array with numbers like these:
3.2692e+17
However, I want to extraxt the first three numbers, as I am interested in the 32.6 (or 32.7 if rounded). Some numbers are 3.2692e+16 for example, so dividing by e+16 is not working. What is the easiest way to do this?
  1 Commento
KALYAN ACHARJYA
KALYAN ACHARJYA il 10 Mag 2019
Modificato: KALYAN ACHARJYA il 10 Mag 2019
Input=3.2692e+17
Disired Result=32.6
You want convert or extract?

Accedi per commentare.

Risposta accettata

Star Strider
Star Strider il 10 Mag 2019
One approach:
f = @(x) round(x.*10.^floor(1-log10(abs(x))),2);
producing:
x = [3.2692e+17; 3.2692e+16; 4.2516E+8];
Result = f(x)
Result =
3.27
3.27
4.25
Change the last argument to the round function to change the number of decimal places the function returns.
  2 Commenti
Lieke Numan
Lieke Numan il 10 Mag 2019
Thanks a lot!
Star Strider
Star Strider il 10 Mag 2019
As always, my pleasure!

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by