四舍五入到10的力量

Ale*_*ols 12 matlab logging rounding exponent

我有一个变量tauMax,我想圆到十最近的电源(1,10,100,1000 ......).我使用下面的表达式来找到最接近tau数组中最大值的整数.我找到了最大值,因为我试图计算应该是x轴截止的10的幂.在这个原因中,tauMax等于756,所以我希望有一个输出1000或3(10 ^ 3)的表达式.

tauMax = round(max(tau));
Run Code Online (Sandbox Code Playgroud)

我真的很感激任何帮助!

b3.*_*b3. 29

既然你在谈论基数10,你可以log10用来获得数字.

怎么样:

>> ceil(log10(756))

ans =

     3
Run Code Online (Sandbox Code Playgroud)


ste*_*eha 6

我并不真正使用 Matlab,但在我所知道的任何语言中执行此操作的常用方法是:取对数以 10 为底,然后将该数字四舍五入为最接近的整数,然后计算 10 的该数字的幂。在 Python 中:

from math import ceil, log

def ceil_power_of_10(n):
    exp = log(n, 10)
    exp = ceil(exp)
    return 10**exp

>>> print(ceil_power_of_10(1024))  # prints 10000
Run Code Online (Sandbox Code Playgroud)