how to consider only the integer part discarding the exponent part

6 Ansichten (letzte 30 Tage)
ANUSAYA SWAIN
ANUSAYA SWAIN am 2 Jun. 2023
Bearbeitet: Star Strider am 2 Jun. 2023
Suppose i have a= [1 23 56]*10^(-9);
i want to acccess only the integer part that is 1 23 and 56.
i want to find the max(a). That is the output should be 56.

Antworten (2)

Pramil
Pramil am 2 Jun. 2023
Bearbeitet: Pramil am 2 Jun. 2023
What you can do is multiply "a" with 10^9 first and then proceed to find max(a). Like this :
a = [1 23 56]*10^(-9); % given array
a_int = int64(a*10^9); % convert to integer array
max_a = max(a_int); % find maximum value
disp(max_a);
56

Star Strider
Star Strider am 2 Jun. 2023
Bearbeitet: Star Strider am 2 Jun. 2023
This appears to be a reasonably robust approach —
a = [1 23 56]*10^(-9);
b = a.*10.^ceil(-log10(abs(a))+1)
b = 1×3
10.0000 23.0000 56.0000
max_a = max(b)
max_a = 56.0000
a = [1 23 56]*10^(-6);
b = a.*10.^ceil(-log10(abs(a))+1)
b = 1×3
10 23 56
a = [1 23 56]*10^(10);
b = a.*10.^ceil(-log10(abs(a))+1)
b = 1×3
10 23 56
a = [1 23 56]*10^(-1);
b = a.*10.^ceil(-log10(abs(a))+1)
b = 1×3
10.0000 23.0000 56.0000
EDIT — Corrected typographical error
.

Kategorien

Mehr zu Just for fun finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by