Matlab-data-types
MATLAB-データ型
MATLABは、型宣言または次元ステートメントを必要としません。 MATLABは、新しい変数名を検出するたびに、変数を作成し、適切なメモリスペースを割り当てます。
変数が既に存在する場合、MATLABは元のコンテンツを新しいコンテンツに置き換え、必要に応じて新しいストレージスペースを割り当てます。
例えば、
Total = 42
上記のステートメントは、 'Total’という名前の1行1列の行列を作成し、値42を格納します。
MATLABで利用可能なデータ型
MATLABは15の基本データ型を提供します。 すべてのデータ型には、マトリックスまたは配列の形式のデータが格納されます。 この行列または配列のサイズは、最小で0行0列であり、任意のサイズの行列または配列に拡大できます。
次の表は、MATLABで最も一般的に使用されるデータ型を示しています-
| Sr.No. | Data Type & Description |
|---|---|
| 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は、あるデータ型から別のデータ型に値を変換するためのさまざまな関数を提供します。 次の表は、データ型変換関数を示しています-
| Function | Purpose |
|---|---|
| char | Convert to character array (string) |
| int2str | Convert integer data to string |
| mat2str | Convert matrix to string |
| num2str | Convert number to string |
| str2double | Convert string to double-precision value |
| str2num | Convert string to number |
| native2unicode | Convert numeric bytes to Unicode characters |
| unicode2native | Convert Unicode characters to numeric bytes |
| base2dec | Convert base N number string to decimal number |
| bin2dec | Convert binary number string to decimal number |
| dec2base | Convert decimal to base N number in string |
| dec2bin | Convert decimal to binary number in string |
| dec2hex | Convert decimal to hexadecimal number in string |
| hex2dec | Convert hexadecimal number string to decimal number |
| hex2num | Convert hexadecimal number string to double-precision number |
| num2hex | Convert singles and doubles to IEEE hexadecimal strings |
| cell2mat | Convert cell array to numeric array |
| cell2struct | Convert cell array to structure array |
| cellstr | Create cell array of strings from character array |
| mat2cell | Convert array to cell array with potentially different sized cells |
| num2cell | Convert array to cell array with consistently sized cells |
| struct2cell | Convert structure to cell array |
データ型の決定
MATLABは、変数のデータ型を識別するためのさまざまな関数を提供します。
次の表は、変数のデータ型を決定するための機能を提供します-
| Function | Purpose |
|---|---|
| is | Detect state |
| isa | Determine if input is object of specified class |
| iscell | Determine whether input is cell array |
| iscellstr | Determine whether input is cell array of strings |
| ischar | Determine whether item is character array |
| isfield | Determine whether input is structure array field |
| isfloat | Determine if input is floating-point array |
| ishghandle | True for Handle Graphics object handles |
| isinteger | Determine if input is integer array |
| isjava | Determine if input is Java object |
| islogical | Determine if input is logical array |
| isnumeric | Determine if input is numeric array |
| isobject | Determine if input is MATLAB object |
| isreal | Check if input is real array |
| isscalar | Determine whether input is scalar |
| isstr | Determine whether input is character array |
| isstruct | Determine whether input is structure array |
| isvector | Determine whether input is vector |
| class | Determine class of object |
| validateattributes | Check validity of array |
| whos | List variables in workspace, with sizes and types |
例
次のコードでスクリプトファイルを作成します-
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