Main Content

log2

2 を底とした対数と浮動小数点数分解

説明

Y = log2(X) は、2Y=X を満たす、X の要素の 2 を底とする対数を計算します。

[F,E] = log2(X)X=F2E を満たす配列 F および配列 E を返します。F の値は、通常は 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) を示します。同様に、4 番目の行について eps=12(2-51) を示します。

入力引数

すべて折りたたむ

入力行列。スカラー、ベクトル、行列、多次元配列、table、または timetable として指定します。

浮動小数点数分解 [F,E] = log2(X) では、X に 0 があると F = 0 かつ E = 0 となります。Inf-Inf または NaN の入力値は変更されずに F に返され、対応する指数は E = 0 となります。

データ型: single | double | table | timetable
複素数のサポート: あり

出力引数

すべて折りたたむ

2 を底とする対数値。X と同じサイズのスカラー、ベクトル、行列、多次元配列、table、または timetable として返されます。

仮数値。X と同じサイズのスカラー、ベクトル、行列、多次元配列、table、または timetable として返されます。FE の値は X = F.*2.^E を満たします。

指数値。X と同じサイズのスカラー、ベクトル、行列、多次元配列、table、または timetable として返されます。FE の値は X = F.*2.^E を満たします。

ヒント

  • この関数は、ANSI® C 関数 frexp() および IEEE® の浮動小数点標準関数 logb() に対応します。X の要素にゼロがあると、F = 0 かつ E = 0 になります。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する

参考

| |