一、字符串的表示
在matlab中,字符串使用单引号括起来的。
如果需要显示单引号字符,则可以用两个单引号表示
>> a='abcdefg'; %行向量字符串矩阵
>> a(1:4)
ans =
'abcd'
>> b=['abc','cba';'bca','bac'] %字符串矩阵
b =
2×6 char 数组
'abccba'
'bcabac'
二、字符串的操作
1.字符串执行 eval
>> t=180;
>> m='[t,sind(t),cosd(t)]';
>> y=eval(m) //可以执行字符串数据
y =
180 0 -1
2.字符串与数值转换
asb和double函数可以将字符串矩阵转换位ASCII码数值矩阵
char函数可以把ASCII码数值矩阵转换成字符串矩阵
>> a=abs(str1);
>> str1='Hello world';
>> a=abs(str1)
a =
列 1 至 9
72 101 108 108 111 32 119 111 114
列 10 至 11
108 100
>> c=char(a)
c =
'Hello world'
2.字符串比较
(1)关系运算符比较
通过字符的ASCII码进行对应元素关系比较,获得一个同型的01矩阵。
>> 'abc0'>'cab2'
ans =
1×4 logical 数组
0 1 1 0
(2)字符串比较函数
1)strcmp(s1,s2):用来比较s1和s2是否相等,相等返回1,否则返回0
> strcmp('abc','abc')
ans =
logical
1
>> strcmp('abc','cba')
ans =
logical
0
2)strncmp(s1,s2,n):用来比较两个字符串前n个字符是否相等,相等返回1,不相等返回0
> strncmp('abcx','abcd',2)
ans =
logical
1
>> strncmp('abcx','abcd',4)
ans =
logical
0
3)strncmpi(s1,s2):忽略大小写,比较s1和s2是否相等,相等返回1,否则返回0
4)strncmpi(s1,s2,n):忽略大小写,比较两个字符串前n个字符是否相等,相等返回1,不相等返回0
3.字符串的查找与替换
(1)findstr(s1,s2):返回短字符串在长字符串中的开始位置
>> p=findstr('This is a Matlab', 'is')
p =
3 6
(2)strrep(s1,s2,s3):将字符串s1中的子字符串s2,替换成s3
>> p=strrep('This is a Matlab', 'Matlab','test')
p =
'This is a test'