在matlab中,字符串是用单引号括起来的字符序列,下标从1开始。
1、取某段字符串
>> str = 'I love China';
>> str(1:3)
ans =
'I l'
2、如果字符串中有单引号,则该单引号要用两个单引号表示。
>> 'I''m a student'
ans =
'I'm a student'
3、建立多行字符串,形成字符串矩阵
>> str = ['abcdef';'123456'];
>> str(1,2)
ans =
'b'
eg:建立一个字符串向量,做以下处理:
1.取1~5个字符串组成子字符串
>> str = 'dg1j43sh4S23SfADHsdaJK78F&_&*SD325asddfv%^%^';
>> str1 = str(1:5)
str1 =
'dg1j4'
2.将字符串倒序排列 str(a,b,c) a:开始,b:步长,c:结束
>> str2 = str(end:-1:1)
str2 =
'^%^%vfddsa523DS*&_&F87KJadsHDAfS32S4hs34j1gd'
3.将字符串中的小写字符变成大写字母,其余字符不变
>> x = find(str>='a' & str<='z');
>> str(x) = str(x)-('a'-'A')
str =
'DG1J43SH4S23SFADHSDAJK78F&_&*SD325ASDDFV%^%^'
4.统计字符串中数字的个数
>> k = find(str>='0'&str<='9');
>> length(k)
ans =
11
字符串操作
1、字符串与数值之间的转换
abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。相反,char函数可以把ASCII码数值矩阵转换为字符矩阵。
>> s1 = 'Matlab';
>> a = abs(s1)
a =
77 97 116 108 97 98
>> char(a)
ans =
'Matlab'
2、字符串的比较
字符串比较的两种方法:关系运算符,比较函数
关系运算符比较:两个字符串里面的每一个字符一次按照ASCII码值大小比较,结果要么是0,要么是1。
>> 'sjDAc' >= 'AHDss'
ans =
1×5 logical 数组
1 1 1 0 0
比较函数
【1】strcmp(s1,s2):如果s1=s2,结果为1,否则为0
【2】strncmp(s1,s2,n):比较前n个字符是否相等,相等结果为1,否则为0
【3】strcmpi(s1,s2):忽略字母大小写的前提下,比较s1是否等于s2,相等为1,否则为0
【4】strncmpi(s1,s2,n):忽略字母大小写的前提下,比较前n个字符是否相等,相等结果为1,否则为0
>> s1 = 'sjDAc';
>> s2 = 'AHDss';
>> strcmp(s1,s2)
ans =
logical
0
>> strncmp(s1,s2,3)
ans =
logical
0
>> strcmpi(s1,s2)
ans =
logical
0
>> strncmpi(s1,s2,2)
ans =
logical
0
3、字符串的查找与替换
findstr(s1,s2):返回短字符串在长字符串中的开始位置
strrep(s1,s2,s3):将字符串s1中的所有子字符串s2替换为s3
>> s1= 'This is a test!';
>> s2= 'test';
>> s3= 'class';
>> str = findstr(s2,s1)
str =
11
>> str1 = strrep(s1,s2,s3)
str1 =
'This is a class!'