1.在Matlab中,字符串是用单引号括起来的字符序列。
>> xm='Central South University';
>> xm(1:3)
ans =
'Cen'
2.若字符串中的字符含有单引号,则该单引号字符要用两个单引号来表示。
>> 'I''m a teacher.'
ans =
'I'm a teacher.'
3.建立多行字符串,形成字符串矩阵。
>> ch=['abcdef';'123456'];
>> ch(2,3)
ans =
'3'
4.字符串的操作
(1)字符串的执行
格式:eval(s)
s为字符串
>> t=pi;
>> m='[t,sin(t),cos(t)]';
>> y=eval(m)
y =
3.1416 0.0000 -1.0000
(2)字符串与数值之间的转换
1⃣️abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。
2⃣️char函数可以把ASCII码矩阵转换为字符串矩阵。
>> s1='MATLAB';
>> a=abs(s1)
a =
77 65 84 76 65 66
>> char(a+32)
ans =
'matlab'
(3)字符串的比较
1⃣️字符串的比较有两种方法:利用关系运算符或字符串比较函数。
2⃣️关系运算符比较:两个字符串里的每个字符依次按ASCII值大小逐个进行比较,比较的结果是一个数值向量,向量中的元素要么是1,要么是0 。
>> 'www0'>='W123'
ans =
1 1 1 0
3⃣️字符串比较函数用于判断字符串是否相等,有4种比较方式。
strcmp(s1,s2)
用来比较字符串s1和s2是否相等,如果相等,返回结果为1,否则返回0 。
strncmp(s1,s2,n)
用来比较两个字符串前n个字符是否相等,如果相等,返回1,否则返回0 。
strcmpi(s1,s2)
在忽略字母大小写前提下,比较字符串s1和s2是否相等,如果相等,返回1,否则,返回0 。
strncmpi(s1,s2,n)
在忽略字符串大小写前提下,比较两个字符串前n个字符是否相等,如果相等,返回1,否则返回0 。
>> strcmp('www0','w123')
ans =
0
>> strncmpi('Www0','w123',1)
ans =
1
4⃣️字符串的查找与替换
findstr(s1,s2)
返回短字符串在长字符串中的开始位置。
strrep(s1,s2,s3)
将字符串s1中的所有子字符串s2替换为字符串s3 。
>> findstr('This is a test1!','is')
ans =
3 6
>> p=findstr('is','This is a test!')
p =
3 6
>> result=strrep('This is a test!','test','class')
result =
'This is a class!'