1.字符串的表示
字符串是用单引号' '引起来的
数组使用双引号" "引起来的
>> xm="hhHHH"
xm =
"hhHHH"
>> xm(1:3)
索引超过数组元素的数量。索引不能超过 1。
>> ab='hhHHH'
ab =
'hhHHH'
>> ab(1:3)
ans =
'hhH'
若字符串中有单引号,则该单引号还要再加个单引号表示
>> 'I''m a teacher.'
ans =
'I'm a teacher.'
建立多行字符串,形成字符串矩阵
要求维度一样
若不一致,用空格 代替
>> AB=['abcd';'123 '];
>> AB(2,3)
ans =
'3'
>> AB(2,4)
ans =
' '
>> CD=['abcd';'123'];
错误使用 vertcat
要串联的数组的维度不一致。
建立一个字符串向量,然后对该向量做如下处理:
① 取第1~5个字符组成的子字符串。
② 将字符串倒过来重新排列。
③ 将字符串中的小写字母变成相应的大写字母,其余字符不变。
④ 统计字符串中小写字母的个数。
>> ch='ABc123d4e56Fg9';
>> subch=ch(1:5)
subch =
'ABc12'
>> revch=ch(end:-1:1)
revch =
'9gF65e4d321cBA'
>> k=find(ch>='a' & ch<='z')
k =
3 7 9 13
>> k=find(ch>='a'&ch<='z')
k =
3 7 9 13
>> ch(k)=ch(k)-('a'-'A')
ch =
'ABC123D4E56FG9'
>> length(k)
ans =
4
2.字符串的操作
(1)执行:eval(s)
(2)转换
>> s1='MATLAB';
>> a=abs(s1)
a =
77 65 84 76 65 66
>> b=double(s1)
b =
77 65 84 76 65 66
>> char(a+32)
ans =
'matlab'
(3)比较
①关系运算符比较
>> 'www0'>='W123'
ans =
1×4 logical 数组
1 1 1 0
②函数比较
>> strcmp('www0','w1234')
ans =
logical
0
>> strcmp('www0','www01')
ans =
logical
0
>> strncmpi('Ww','w',1)
ans =
logical
1
4.查找与替换
>> p=findstr('This is a test!', 'is')
p =
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!'