最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

double

説明

double は MATLAB® の既定の数値データ型 (クラス) であり、ほとんどの計算タスクで十分な精度を提供します。数値変数は自動的に 64 ビット (8 バイト) の倍精度浮動小数点値として保存されます。以下に例を示します。

x = 10;
whos x
  Name      Size            Bytes  Class     Attributes

  x         1x1                 8  double  

MATLAB では、倍精度に関する IEEE® 754 標準規格に従って、double データ型が作成されます。double 型の負の数値の範囲は -1.79769 x 10308 ~ -2.22507 x 10-308、正の数値の範囲は 2.22507 x 10-308 ~ 1.79769 x 10308 です。

倍精度および単精度の浮動小数点値の詳細については、浮動小数点数を参照してください。

作成

倍精度配列は、数値スカラーまたは数値配列を変数に代入するとき (A = [1 2 3; 4 5 6] など) に、自動的に作成されます。変数 Adouble 型です。配列の作成および組み合わせの詳細については、行列の作成、連結、および拡張を参照してください。さらに、倍精度入力を使用する倍精度の変数および関数に対する演算では、通常は倍精度値 (+sin など) が返されます。

singleint8 など異なるデータ型の配列がある場合、関数 double を使用してその配列を倍精度に変換することができます。これにより、より精度の高い配列が保存され、今後の計算に使用できます。

説明

Y = double(X)X の値を倍精度に変換します。

入力引数

すべて展開する

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

データ型: single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

すべて折りたたむ

既定では、MATLAB 内の数値のデータ型は double です。関数 class を使用して変数の型を確認できます。

x = 100;
xtype = class(x)
xtype = 
'double'

関数 double を使用して、倍精度ではない変数を double 型に変換します。

y = true
y = logical
   1

ydouble = double(y);
ynewtype = class(ydouble)
ynewtype = 
'double'

倍精度の数値の範囲を単精度の範囲と比較します。

関数 realmin および realmax を使用して、倍精度で表現できる最小、最大の正の値を表示します。

doublemin = realmin('double')
doublemin = 2.2251e-308
doublemax = realmax('double')
doublemax = 1.7977e+308

次に、単精度で表現できる最小、最大の正の値を表示します。値の範囲は倍精度に比べると小さいですが、必要なメモリは少なくなります。

singlemin = realmin('single')
singlemin = single
    1.1755e-38
singlemax = realmax('single')
singlemax = single
    3.4028e+38

関数 eps は、倍精度と単精度で数値がどれだけ近くなり得るかの測定を返します。数値 1.0 から次に大きい倍精度数値までの距離を表示します。

doubleeps = eps('double')
doubleeps = 2.2204e-16

次に、1.0 から次に大きい単精度数値までの距離を表示します。倍精度値は、より多くを表現できるため、互いの距離が近くなっています。

singleeps = eps('single')
singleeps = single
    1.1921e-07

ヒント

  • クラスを作成しているときに、そのクラスのオブジェクトを倍精度値に変換する意味がある場合は、double をオーバーロードします。

拡張機能

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

R2006a より前に導入