如何在Matlab中得到科学记数的指数

Rac*_*hel 6 matlab scientific-notation matrix exponent

当数字非常小时,Matlab会自动将它们格式化为科学记数法.

例:

A = rand(3) / 10000000000000000;

A =

  1.0e-016 *

    0.6340    0.1077    0.6477
    0.3012    0.7984    0.0551
    0.5830    0.8751    0.9386
Run Code Online (Sandbox Code Playgroud)

是否有一些内置函数返回指数?像这样的东西:getExponent(A) = -16

我知道这是一个愚蠢的问题,但我需要检查数百个矩阵,我似乎无法弄明白.

谢谢您的帮助.

Ala*_*ain 15

基础数学可以告诉你:

floor(log10(N))
Run Code Online (Sandbox Code Playgroud)

数字的对数基数10告诉您大约在该数字前面的小数位数.

例如,999871234598237549.998E+016

log10(99987123459823754)16.9999441的底板是16- 它基本上可以告诉你"科学记数法中的指数是16,非常接近17".

地板总是向下舍入,所以你不必担心小指数:

0.000000000003754 = 3.754E-012
log10(0.000000000003754) = -11.425
floor(log10(0.000000000003754)) = -12
Run Code Online (Sandbox Code Playgroud)