Matlab扫盲17:字符型数组、创建、判断和索引方法,集合运算、与数值型转换方法、运算
1.概念
字符型(Characters)数据一般用来存储和处理文本数据,字符数组是一个字符序列,字符向量把字符存储为1乘n的向量,是常用形式,在Matlab中有两种表示文本的方法:字符型和字符串型,本文先介绍字符型数组的创建、连接、转换和运算等内容;
2.创建、判断和索引
创建字符型数组使用一对单引号 '',判断一个变量是否为字符型数据使用函数ischar,字符数组的索引方法与数值型数组的索引方法用法相同,数值型数组的索引方法看文章6Matlab矩阵索引、下标索引、线性索引、逻辑索引、冒号end索引、超出索引报错
程序示例:
a='123' %创建字符数组
b='freexyn'
c='自由未知数'
size(c) %查看行列数
ischar(a) %判断是否为字符型
'I''m fine' %字符数组内有单引号时,使用双引号表达
c(1:3) %索引字符向量的元素
c(6)='.' %通过索引改变字符向量的元素
3.字符数组的连接
多个字符数组连接的方法与数值型数组连接的方法一致,具体看文章7Matlab扫盲7:矩阵元素的合并、连接、提取、翻转、排序、平铺复制、提取对角线元素,另外,也可以使用函数,水平连接使用strcat函数,竖直连接使用strvcat函数;
程序示例:
b='freexyn'
c='自由未知数'
[b,c] %字符连接:中括号水平连接
strcat(b,c) %水平连接函数
strvcat(b,c) %垂直连接函数:列数不同时会自动补齐空格
4.字符数组的集合运算
集合运算就是计算交集、并集等,求交集使用函数intersect,求并集使用函数union
程序示例:
a='123' %字符向量
b='1245'
union(a,b) %并集
intersect(a,b) %交集
5.字符型与数值型的转换方法
基于Unicode编码,进行字符和数值之间相互转换使用函数char和double,基于字符字面义不变,进行字符和数值之间相互转换使用函数num2str和str2num
程序示例:
char(100) %双精度100转化为字符型为d
char([97 98 99 100]) %转化1行4列数值型。返回结果a b c d
double('a') %把字符a转化为数值型为97
num2str(100) %把数值100转换成字符‘100’
str2num('100') %把字符'100'转换成数值100
r=80
disp(['计算得出半径r:',num2str(r)]) %结果:计算得出半径r:80
6.字符型数组的运算
a='d'
b='100' %1行3列字符向量:1 0 0
a+a %字符自动转成数值再运算,返回200
a+b %返回149 148 148
char(49) %返回字符'1'
str2num('100')+str2num('100') %返回200



End