MATLAB - データ型
MATLAB では、型宣言や次元ステートメントは必要ありません。 MATLAB が新しい変数名を検出するたびに、変数を作成し、適切なメモリ空間を割り当てます。
変数が既に存在する場合、MATLAB は元のコンテンツを新しいコンテンツに置き換え、必要に応じて新しいストレージ スペースを割り当てます。
たとえば、
Total = 42
上記のステートメントは、'Total' という名前の 1 行 1 列の行列を作成し、値 42 を格納します。
MATLAB で利用可能なデータ型
MATLAB は 15 の基本的なデータ型を提供します。すべてのデータ型は、行列または配列の形式でデータを格納します。この行列または配列の最小サイズは 0 行 0 列で、任意のサイズの行列または配列に拡張できます。
次の表は、MATLAB で最も一般的に使用されるデータ型を示しています −
| Sr.No. | データの種類と説明 |
|---|---|
| 1 | int8 8 ビット符号付き整数 |
| 2 | uint8 8 ビット符号なし整数 |
| 3 | int16 16 ビット符号付き整数 |
| 4 | uint16 16 ビット符号なし整数 |
| 5 | int32 32 ビット符号付き整数 |
| 6 | uint32 32 ビット符号なし整数 |
| 7 | int64 64 ビット符号付き整数 |
| 8 | uint64 64 ビット符号なし整数 |
| 9 | シングル 単精度数値データ |
| 10 | ダブル 倍精度数値データ |
| 11 | 論理的 1 または 0 の論理値で、それぞれ true と false を表します |
| 12 | 文字 文字データ (文字列は文字のベクトルとして格納されます) |
| 13 | セル配列 それぞれが異なる次元とデータ型の配列を格納できるインデックス付きセルの配列 |
| 14 | 構造 C に似た構造体。各構造体には、異なる次元とデータ型の配列を格納できる名前付きフィールドがあります |
| 15 | 関数ハンドル 関数へのポインタ |
| 16 | ユーザー クラス ユーザー定義クラスから構築されたオブジェクト |
| 17 | Java クラス Java クラスから構築されたオブジェクト |
例
次のコードでスクリプト ファイルを作成します −
ライブデモstr = 'Hello World!' n = 2345 d = double(n) un = uint32(789.50) rn = 5678.92347 c = int32(rn)
上記のコードをコンパイルして実行すると、次の結果が生成されます −
str = Hello World! n = 2345 d = 2345 un = 790 rn = 5678.9 c = 5679
データ型変換
MATLAB には、値をあるデータ型から別のデータ型に変換するためのさまざまな関数が用意されています。次の表は、データ型変換関数を示しています −
| 機能 | 目的 |
|---|---|
| 文字 | 文字配列(文字列)に変換 |
| int2str | 整数データを文字列に変換 |
| mat2str | 行列を文字列に変換 |
| num2str | 数値を文字列に変換 |
| str2double | 文字列を倍精度値に変換 |
| str2num | 文字列を数値に変換 |
| native2unicode | 数値バイトを Unicode 文字に変換 |
| unicode2native | Unicode 文字を数値バイトに変換 |
| base2dec | 基数 N の数値文字列を 10 進数に変換 |
| bin2dec | 2 進数文字列を 10 進数に変換 |
| dec2base | 10 進数を文字列の N 基数に変換 |
| dec2bin | 文字列で 10 進数を 2 進数に変換 |
| dec2hex | 文字列で 10 進数を 16 進数に変換 |
| hex2dec | 16 進数の文字列を 10 進数に変換 |
| hex2num | 16 進数文字列を倍精度数に変換 |
| num2hex | single と double を IEEE 16 進数文字列に変換 |
| cell2mat | セル配列を数値配列に変換 |
| cell2struct | セル配列を構造体配列に変換 |
| cellstr | 文字配列から文字列のセル配列を作成 |
| mat2cell | セルのサイズが異なる可能性があるセル配列に配列を変換する |
| num2cell | 配列を一貫したサイズのセルを持つ cell 配列に変換する |
| struct2cell | 構造体をセル配列に変換 |
データ型の決定
MATLAB には、変数のデータ型を識別するためのさまざまな関数が用意されています。
次の表は、変数のデータ型を決定するための関数を提供します −
| 機能 | 目的 |
|---|---|
| は | 状態を検出 |
| ISA | 入力が指定されたクラスのオブジェクトかどうかを判断する |
| iscell | 入力がセル配列かどうかを判断 |
| iscellstr | 入力が文字列のセル配列かどうかを判断する |
| イスチャー | item が文字配列かどうかを判断する |
| フィールド | 入力が構造体配列フィールドかどうかを判別 |
| isfloat | 入力が浮動小数点配列かどうかを判断 |
| イッシュガンドル | Handle Graphics オブジェクト ハンドルの場合は True |
| 整数 | 入力が整数配列かどうかを判断する |
| isjava | 入力が Java オブジェクトかどうかを判断する |
| 論理的でない | 入力が論理配列かどうかを判断する |
| 数値 | 入力が数値配列かどうかを判断 |
| isobject | 入力が MATLAB オブジェクトかどうかを判断する |
| 現実 | 入力が実数配列かどうかをチェック |
| イスカル | 入力がスカラーかどうかを判断する |
| isstr | 入力が文字配列かどうかを判断する |
| 構造体 | 入力が構造体配列かどうかを判断する |
| ベクトル | 入力がベクトルかどうかを判断 |
| クラス | オブジェクトのクラスを決定 |
| 検証属性 | 配列の有効性をチェック |
| 誰 | ワークスペース内の変数をサイズと型とともに一覧表示 |
例
次のコードでスクリプト ファイルを作成します −
ライブデモx = 3 isinteger(x) isfloat(x) isvector(x) isscalar(x) isnumeric(x) x = 23.54 isinteger(x) isfloat(x) isvector(x) isscalar(x) isnumeric(x) x = [1 2 3] isinteger(x) isfloat(x) isvector(x) isscalar(x) x = 'Hello' isinteger(x) isfloat(x) isvector(x) isscalar(x) isnumeric(x)
ファイルを実行すると、次の結果が生成されます-
x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 23.540
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =
1 2 3
ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0
MATLAB