工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> MATLAB

MATLABの数値型:型、格納、変換

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 to %d '; sprintf(str, intmin('int8'), intmax('int8')) str = 'The range for int16 is:\n\t%d to %d '; sprintf(str, intmin('int16'), intmax('int16')) str = 'The range for int32 is:\n\t%d to %d '; sprintf(str, intmin('int32'), intmax('int32')) str = 'The range for int64 is:\n\t%d to %d '; sprintf(str, intmin('int64'), intmax('int64')) % 無符号整数データの最小値と最大値を表示 str = 'The range for uint8 is:\n\t%d to %d '; sprintf(str, intmin('uint8'), intmax('uint8')) str = 'The range for uint16 is:\n\t%d to %d '; sprintf(str, intmin('uint16'), intmax('uint16')) str = 'The range for uint32 is:\n\t%d to %d '; sprintf(str, intmin('uint32'), intmax('uint32')) str = 'The range for uint64 is:\n\t%d to %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 to 0 ans = The range for uint8 is: 0 to 255 ans = The range for uint16 is: 0 to 65535 ans = The range for uint32 is: 0 to -1 ans = The range for uint64 is: 0 to 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 = The range for single is: -3.40282e+38 to -1.17549e-38 and 1.17549e-38 to 3.40282e+38 ans = The range for double is: -1.79769e+308 to -2.22507e-308 and 2.22507e-308 to 1.79769e+308 

MATLAB

  1. 数と数値システム:違いと実践的影響
  2. MATLAB徹底解説:数値計算環境の決定版
  3. MATLAB変数の理解:基礎から実例まで徹底解説
  4. MATLAB必須コマンドリファレンス:効率的な計算のための完全ガイド
  5. MATLABデータ型完全ガイド:15種類の基本型と変換・判定関数
  6. MATLAB演算子完全ガイド:算術・論理・ビット演算・集合操作
  7. MATLAB行列完全マスター:作成・参照・操作・削除の基礎
  8. MATLAB:多次元配列と特殊配列をマスターする
  9. MATLABコロン演算子をマスター:ベクトル作成と効率的な反復処理
  10. MATLAB文字列をマスター:作成と活用ガイド
  11. MATLAB関数:定義、ワークスペース、入出力