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