MATLAB 并不需要任何类型的声明或维度报表。 MATLAB 每当遇到一个新的变量名称,创建变量,并分配适当的内存空间。
如果变量已经存在,则MATLAB替换以新的内容的原始内容,并分配新的存储空间,在必要的情况下。
例如,
Total = 42
上述语句创建了一个名为“Total” 的 1-1 矩阵存储值42。
MATLAB 提供15个基本数据类型。每种数据类型的数据存储在矩阵或阵列的形式。这个矩阵的大小或阵列是一个最低 0-0,这可以长大为任何规模大小的矩阵或数组。
下表显示了在 MATLAB 中最常用的数据类型:
| 数据类型 | 描述 |
|---|---|
| int8 | 8-bit signed integer |
| uint8 | 8-bit unsigned integer |
| int16 | 16-bit signed integer |
| uint16 | 16-bit unsigned integer |
| int32 | 32-bit signed integer |
| uint32 | 32-bit unsigned integer |
| int64 | 64-bit signed integer |
| uint64 | 64-bit unsigned integer |
| single | single precision numerical data |
| double | double precision numerical data |
| logical | logical values of 1 or 0, represent true and false respectively |
| char | character data (strings are stored as vector of characters) |
| cell array | array of indexed cells, each capable of storing an array of a different dimension and data type |
| structure | C-like structures, each structure having named fields capable of storing an array of a different dimension and data type |
| function handle | web3er to a function |
| user classes | objects constructed from a user-defined class |
| java classes | objects constructed from a Java class |
创建一个脚本文件,用下面的代码:
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 = 5.6789e+03 c = 5679
MATLAB 提供各种函数,用于从一种数据类型转换到另一种。下表显示的数据类型转换函数:
| 函数 | 目的/作用 |
|---|---|
| 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 提供各种函数标识数据类型的变量。
下表提供了确定一个变量的数据类型的函数:
| 函数 | 目的/作用 |
|---|---|
| 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-web3 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.5400
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