字符串表示
在matlab中 字符串是用单引号括起来的字符序列
若字符串中有单引号,那就要用两个单引号来表示
>> 'i''m superman'
ans =
i'm superman
建立多行字符串 列数要相同
>> wow=['sadf';'2134']
wow =
sadf
2134
>> wow(2,4)
ans =
4
建立一个字符串向量,然后对该向量作如下处理:
1,取1~5个字符组成的子字符串。
2,将字符串倒过来重新排列
3,将字符串中的小写字母变成相应的大写字母,其余字符不变。
4,统计字符串中小写字母的个数
>> hi(1,1:5)
ans =
ABc12
>> hi(end:-1:1)
ans =
9gF65e4d321cBA
>> find(hi>='a'&hi<='z')
ans =
3 7 9 13
>> hi(ans)=hi(ans)-('a'-'A')
hi =
ABC123D4E56FG9
>> length(ans)
ans =
4
字符串的操作
字符串执行 eval(s)
>> t=pi;
>> m='[t,sin(t),cos(t)]'
m =
[t,sin(t),cos(t)]
>> u=eval(m)
u =
3.1416 0.0000 -1.0000
(2)字符串与数值之间的转换
abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。
char函数可以把ASCII码矩阵转换为字符串矩阵
>> abs('MATLAB')
ans =
77 65 84 76 65 66
>> char(77)
ans =
M
>>char(a+32)
ans=
matlab
(3)字符串的比较
字符串的比较有两种方法:利用关系运算符或字符串比较函数。
关系运算符比较:按照两个字符串里的每个字符的ASCII码比较,结果是一个0 1数值向量,
>> 'sa'<'we'
ans =
1×2 logical 数组
1 1
字符串比较函数用于判断字符串是否相等,有4钟比较方式
1,strcmp(s1,s2) s1 s2是否相等,是 1 否 0
2,srtncmp(s1,s2,n)比较两个字符串前n个字符是否相等,是1否0
3,strcmpi(s1,s2)忽略大小写前提下比较是否相等
4,srtncmpi(s1,s2,n)忽略大小写前提下比较前n个字符是否相等
(3)字符串查找与替换
findstr(s1,s2) 返回字符串在长字符串中的开始位置。
strrep(s1,s2,s3) 将字符串s1中所有子字符串s2替换为s3.
>> findstr('pen apple pen','pen')
ans =
1 11
>> strrep('pen apple pen','pen','apple')
ans =
apple apple apple