MATLAB-データ型
MATLABは、型宣言や次元ステートメントを必要としません。MATLABは、新しい変数名を検出するたびに、変数を作成し、適切なメモリスペースを割り当てます。
変数がすでに存在する場合、MATLABは元のコンテンツを新しいコンテンツに置き換え、必要に応じて新しいストレージスペースを割り当てます。
例えば、
Total = 42
上記のステートメントは、「Total」という名前の1行1列の行列を作成し、その中に値42を格納します。
MATLABで使用可能なデータ型
MATLABは、15の基本的なデータ型を提供します。すべてのデータ型は、行列または配列の形式のデータを格納します。この行列または配列のサイズは最小で0x 0であり、これは任意のサイズの行列または配列にまで拡大できます。
次の表は、MATLABで最も一般的に使用されるデータ型を示しています。
シニア番号 | データ型と説明 |
---|---|
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 | single 単精度数値データ |
10 | double 倍精度数値データ |
11 | logical 1または0の論理値は、それぞれtrueとfalseを表します |
12 | char 文字データ(文字列は文字のベクトルとして格納されます) |
13 | cell array インデックス付きセルの配列。それぞれが異なる次元とデータ型の配列を格納できます。 |
14 | structure Cのような構造体。各構造体には、異なる次元とデータ型の配列を格納できる名前付きフィールドがあります。 |
15 | function handle 関数へのポインタ |
16 | user classes ユーザー定義クラスから構築されたオブジェクト |
17 | java classes 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は、あるデータ型から別のデータ型に値を変換するためのさまざまな関数を提供します。次の表に、データ型変換関数を示します。
関数 | 目的 |
---|---|
char | 文字配列(文字列)に変換 |
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 | シングルとダブルをIEEE16進文字列に変換します |
cell2mat | セル配列を数値配列に変換する |
cell2struct | セル配列を構造体配列に変換します |
cellstr | 文字配列から文字列のセル配列を作成する |
mat2cell | 配列を、サイズが異なる可能性のあるセルを持つセル配列に変換します |
num2cell | 一貫したサイズのセルを使用して配列をセル配列に変換します |
struct2cell | 構造体をセル配列に変換する |
データ型の決定
MATLABは、変数のデータ型を識別するためのさまざまな関数を提供します。
次の表に、変数のデータ型を決定するための関数を示します。
関数 | 目的 |
---|---|
です | 状態を検出する |
isa | 入力が指定されたクラスのオブジェクトであるかどうかを判別します |
iscell | 入力がセル配列かどうかを判別する |
iscellstr | 入力が文字列のセル配列であるかどうかを判別します |
ischar | アイテムが文字配列であるかどうかを判別する |
イスフィールド | 入力が構造体配列フィールドかどうかを判別します |
isfloat | 入力が浮動小数点配列であるかどうかを判別します |
ishghandle | ハンドルグラフィックスオブジェクトハンドルの場合はTrue |
isinteger | 入力が整数配列かどうかを判別します |
isjava | 入力がJavaオブジェクトであるかどうかを判別します |
islogical | 入力が論理配列かどうかを判別します |
isnumeric | 入力が数値配列かどうかを判別します |
isobject | 入力がMATLABオブジェクトかどうかを判別する |
は本物 | 入力が実配列かどうかを確認します |
isscalar | 入力がスカラーかどうかを判断する |
isstr | 入力が文字配列かどうかを判別します |
isstruct | 入力が構造体配列かどうかを判別します |
isvector | 入力がベクトルかどうかを判断する |
クラス | オブジェクトのクラスを決定する |
validateattributes | アレイの有効性を確認してください |
だれの | サイズとタイプを使用して、ワークスペース内の変数を一覧表示します |
例
次のコードでスクリプトファイルを作成します-
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