1)数据类型转换
MATLAB提供了各种用于将一种数据类型转换为另一种数据类型的函数。 下表显示了数据类型转换函数
函数 | 描述说明 |
char | 转换为字符数组(字符串) |
int2str | 将整数数据转换为字符串 |
mat2str | 将矩阵转换为字符串 |
num2str | 将数字转换为字符串 |
str2double | 将字符串转换为双精度值 |
str2num | 将字符串转换为数字 |
native2unicode | 将数字字节转换为Unicode字符 |
unicode2native | 将Unicode字符转换为数字字节 |
base2dec | 将基数N字符串转换为十进制数 |
bin2dec | 将二进制数字串转换为十进制数 |
dec2base | 将十进制转换为字符串中的N数字 |
dec2bin | 将十进制转换为字符串中的二进制数 |
dec2hex | 将十进制转换为十六进制数字 |
hex2dec | 将十六进制数字字符串转换为十进制数 |
hex2num | 将十六进制数字字符串转换为双精度数字 |
num2hex | 将单数转换为IEEE十六进制字符串 |
cell2mat | 将单元格数组转换为数组 |
cell2struct | 将单元格数组转换为结构数组 |
cellstr | 从字符数组创建字符串数组 |
mat2cell | 将数组转换为具有潜在不同大小的单元格的单元阵列 |
num2cell | 将数组转换为具有一致大小的单元格的单元阵列 |
struct2cell | 将结构转换为单元格数组 |
例1:数字转为数字字符
函数num2str(N) 将数值N(可以带小数点)数组转换为字符数组。
函数 int2str(N) 将 N 视为整数矩阵,并将其转换为表示整数的字符数组。如果 N 包含浮点值,int2str 会在转换之前对这些值进行舍入。
(1)转换一个整数。
chr = int2str(256)
chr =
'256'
(2)对浮点值进行舍入,然后进行转换。
chr = int2str(3.14159)
chr =
'3'
(3)转换一个数值矩阵。
chr = int2str([5 10 20 ;100 200 400])
chr = 2x13 char array
' 5 10 20'
'100 200 400'
而num2str则把整个数字连同小数点转为字符。
例2:数字字符转为数字
使用str2num()函数 可把字符型数字转为数字型数字。
实例总结:
str1=char(97) %把97当成Asicc码,97对应的字符为'a'
str2=int2str(97) %把数字97转换成字符串'97'
str3=int2str(97.6) %把数字97.6四舍五入为98后,转换成字符串'98'
str4=num2str(97.6) %把数字97.6转换成字符串'97.6'
num1=str2num('97.6') %把字符串'97.6',转换成数字97.6
num2=int8('a') %字符串'a'的Asicc码为97,把97转换Int8类型后给num2
whos
运行结果:
num2str()和str2num()函数的应用:
>> ['1+1=', num2str(1+1)]
ans =
'1+1=2'
>> 2 + str2num('3.2')
ans =
5.2000
例3:二进制与十进制的转换
2)数据类型确定
MATLAB提供了用于识别变量数据类型的各种函数。下表提供了确定变量数据类型的函数
函数 | 描述说明 |
is | 检测状态 |
isa | 确定输入是否是指定类的对象 |
iscell | 确定输入是单元格数组 |
iscellstr | 确定输入是字符串的单元格数组 |
ischar | 确定项目是否是字符数组 |
isfield | 确定输入是否是结构数组字段 |
isfloat | 确定输入是否为浮点数组 |
ishghandle | 确定是否用于处理图形对象句柄 |
isinteger | 确定输入是否为整数数组 |
isjava | 确定输入是否为Java对象 |
islogical | 确定输入是否为逻辑数组 |
isnumeric | 确定输入是否是数字数组 |
isobject | 确定输入是否为MATLAB对象 |
isreal | 检查输入是否为实数数组 |
isscalar | 确定输入是否为标量 |
isstr | 确定输入是否是字符数组 |
isstruct | 确定输入是否是结构数组 |
isvector | 确定输入是否为向量 |
class | 确定对象的类 |
validateattributes | 检查数组的有效性 |
whos | 在工作区中列出变量,其大小和类型 |
示例:
s1='gdcp'
n1= 12
n2= int8(12)
lg1=(1>2)
whos s1 n1 n2 lg1
ischar(s1)
isnumeric(s1)
isfloat(n1)
isfloat(n2)
isinteger(n1)
isinteger(n2)
islogical(n1)
islogical(lg1)