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 Kommentar

KALYAN ACHARJYA
KALYAN ACHARJYA am 10 Mai 2019
Bearbeitet: KALYAN ACHARJYA am 10 Mai 2019
Input=3.2692e+17
Disired Result=32.6
You want convert or extract?

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Star Strider
Star Strider am 10 Mai 2019

0 Stimmen

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 Kommentare

Lieke Numan
Lieke Numan am 10 Mai 2019
Thanks a lot!
Star Strider
Star Strider am 10 Mai 2019
As always, my pleasure!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by