English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MATLABは、符号付きおよび無符号の整数、単精度および双精度浮点数を含むさまざまな数字クラスをサポートしています。デフォルトでは、MATLABはすべての数値を双精度浮点数として保存します。
数字や数字の配列を整数または単精度数として保存することができます。
すべての数値データ型は基本的な配列演算と数学演算をサポートしています。
MATLABは、さまざまな数値データ型に変換するための以下の機能を提供します-
機能 | の作用 |
---|---|
double | を双精度数に |
single | を単精度数に |
int8 | を8ビット有符号整数 |
int16 | を16ビット有符号整数 |
int32 | を32ビット有符号整数 |
int64 | を64ビット有符号整数 |
uint8 | を8ビット無符号整数 |
uint16 | を16ビット無符号整数 |
uint32 | を32ビット無符号整数 |
uint64 | を64ビット無符号整数 |
スクリプトファイルを作成し、以下のコードを入力します-
x = single([5.32 3.47 6.28)) .* 7.5 x = double([5.32 3.47 6.28)) .* 7.5 x = int8([5.32 3.47 6.28)) .* 7.5 x = int16([5.32 3.47 6.28)) .* 7.5 x = int32([5.32 3.47 6.28)) .* 7.5 x = int64([5.32 3.47 6.28)) .* 7.5
ファイルを実行すると、以下の結果が表示されます-
x = 39.900 26.025 47.100 x = 39.900 26.025 47.100 x = 38 23 45 x = 38 23 45 x = 38 23 45 x = 38 23 45
前の例をさらに拡張してみましょう。スクリプトファイルを作成し、以下のコードを入力します-
x = int32([5.32 3.47 6.28)) .* 7.5 x = int64([5.32 3.47 6.28)) .* 7.5 x = num2cell(x)
ファイルを実行すると、以下の結果が表示されます-
x = 38 23 45 x = 38 23 45 x = { [1,1] = 38 [1,2] = 23 [1,3] = 45 }
関数intmax()およびintmin()すべての整数データ型で表すことができる最大値と最小値を返します。
これらの関数は、例えばintmax(int8)またはintmin(int64),整数データ型で表すことができる最大値と最小値を返します。
以下の例では、整数の最小値と最大値を取得する方法を説明します。スクリプトファイルを作成し、以下のコードを記述します-
% 表示する最小および最大有符号整数データ str = 'The range for int8 is:\n\t%d から % '; sprintf(str, intmin('int8), intmax('int8)) str = 'The range for int16 is:\n\t%d から % '; sprintf(str, intmin('int16), intmax('int16)) str = 'The range for int32 is:\n\t%d から % '; sprintf(str, intmin('int32), intmax('int32)) str = 'The range for int64 is:\n\t%d から % '; sprintf(str, intmin('int64), intmax('int64)) % 表示する最小および最大無符号整数データ str = 'The range for uint8 is:\n\t%d から % '; sprintf(str, intmin('uint8), intmax('uint8)) str = 'The range for uint16 is:\n\t%d から % '; sprintf(str, intmin('uint16), intmax('uint16)) str = 'The range for uint32 is:\n\t%d から % '; sprintf(str, intmin('uint32), intmax('uint32)) str = 'The range for uint64 is:\n\t%d から % '; sprintf(str, intmin('uint64), intmax('uint64))
ファイルを実行すると、以下の結果が表示されます-
ans = The range for int8 is: -128 to 127 ans = The range for int16 is: -32768 to 32767 ans = The range for int32 is: -2147483648 to 2147483647 ans = The range for int64 is: 0 から 0 ans = The range for uint8 is: 0 から 255 ans = The range for uint16 is: 0 から 65535 ans = The range for uint32 is: 0 から -1 ans = The range for uint64 is: 0 から 18446744073709551616
関数realmax()およびrealmin()浮点数で表すことができる最大値と最小値を返します。
「single」パラメータを使用して両方の関数を呼び出した場合、両方の関数は単精度データ型で表すことができる最大値および最小値を返します;「double」パラメータを使用して呼び出した場合、両方の関数はパラメータで指定された最大値および最小値を返します。これは双精度データ型の最大値および最小値です。
以下の例では、最小および最大の浮点数を取得する方法を説明します。スクリプトファイルを作成し、以下のコードを記述します-
%表示可能な最小および最大の単精度 %浮点数 str = 'The range for single is:\n\t%g to %g and\n\t %g to %g'; sprintf(str, -realmax('single'), -realmin('single'), ... realmin('single'), realmax('single')) %表示可能な最小および最大の双精度 %浮点数 str = 'The range for double is:\n\t%g to %g and\n\t %g to %g'; sprintf(str, -realmax('double'), -realmin('double'), ... realmin('double'), realmax('double'))
ファイルを実行すると、以下の結果が表示されます-
ans = singleの範囲は: -3.40282e+38 to -1.17549e-38 and 1.17549e-38 to 3.40282e+38 ans = doubleの範囲は: -1.79769e+308 to -2.22507e-308 and 2.22507e-308 to 1.79769e+308