Main Content

log2

以 2 为底的对数和浮点数分解

说明

示例

Y = log2(X) 计算 X 的元素以 2 为底的对数,满足 2Y=X

示例

[F,E] = log2(X) 返回数组 FE,满足 X=F2EF 中的值通常在 0.5 <= abs(F) < 1 范围内。

示例

全部折叠

X = [0 1 2 10 Inf NaN];
Y = log2(X)
Y = 1×6

      -Inf         0    1.0000    3.3219       Inf       NaN

将几个数字分解成指数和尾数。这些运算都遵循标准 IEEE® 算术运算的规定。

创建包含几个测试值的向量 X。计算每个数字的指数和尾数。

X = [1 pi -3 eps realmax realmin];
format rat
[F,E] = log2(X)
F = 
       1/2          355/452         -3/4            1/2            1              1/2     

E = 
       1              2              2            -51           1024          -1021       

将结果收集到表中。将数字转换为字符向量以便于显示。

x = {'1','pi','-3','eps','realmax','realmin'}';
f = strtrim(cellstr(rats(F')));
T = table(x,f,E','VariableNames',{'Value','Mantissa','Exponent'})
T=6×3 table
       Value        Mantissa      Exponent
    ___________    ___________    ________

    {'1'      }    {'1/2'    }         1  
    {'pi'     }    {'355/452'}         2  
    {'-3'     }    {'-3/4'   }         2  
    {'eps'    }    {'1/2'    }       -51  
    {'realmax'}    {'1'      }      1024  
    {'realmin'}    {'1/2'    }     -1021  

结果表明,对于第一行,1=12(21)。同样,对于第四行,eps=12(2-51)

输入参数

全部折叠

输入矩阵,指定为标量、向量、矩阵、多维数组、表或时间表。

对于浮点数分解 [F,E] = log2(X)X 中的任何零都将产生 F = 0E = 0Inf-InfNaN 的输入值在 F 中原样返回,对应指数为 E = 0

数据类型: single | double | table | timetable
复数支持:

输出参量

全部折叠

以 2 为底的对数值,以大小与 X 相同的标量、向量、矩阵、多维数组、表或时间表形式返回。

尾数值,以大小与 X 相同的标量、向量、矩阵、多维数组、表或时间表形式返回。FE 中的值满足 X = F.*2.^E

指数值,以大小与 X 相同的标量、向量、矩阵、多维数组、表或时间表形式返回。FE 中的值满足 X = F.*2.^E

提示

  • 此函数对应于 ANSI® C 函数 frexp() 和 IEEE® 浮点标准函数 logb()X 中的任何零都将产生 F = 0E = 0

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出

全部展开

另请参阅

| |