how to consider only the integer part discarding the exponent part

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.

답변 (2개)

Pramil
Pramil 2023년 6월 2일
편집: Pramil 2023년 6월 2일
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 2023년 6월 2일
편집: Star Strider 2023년 6월 2일
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
.

카테고리

도움말 센터File Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기

태그

질문:

2023년 6월 2일

편집:

2023년 6월 2일

Community Treasure Hunt

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

Start Hunting!

Translated by