matlab中字符串用单引号括起来,当作行向量
字符串中的单引号用双引号表示
可用矩阵操作提取子串
str='asdad''sa'
str(1:4)
多行字符串,可看成多行的矩阵,每行的字符串长度应该相等
不等的话,需要空格调节长度
ch=['abc ';'def1';'hijk']
ch(2,3)
字符串操作
eval(s)
s为字符串,把s看成一条指令并执行
此处若单独计算sin(pi),会因为精度问题结果不为0
t=pi;
m='[sin(t),cos(t)]';
y=eval(m)
字符串和数值的转化
abs() double()
可以得到字符的ASCII码值
char函数
可以把数值转化为字符
x='asdf'
k1=double(x)
k2=abs(x)
x2=char(k2-32)
字符串比较
关系运算符
两个字符串每个字符依此比较ASCII码值,返回一个向量,只含 0和1
字符串比较函数
结果返回0或1
strcmp(s1,s2)比较s1 s2
strncmp(s1,s2,n)比较s1 s2前 n个字符
strcmpi(s1,s2)忽略大小写比较s1 s2
strncmpi(s1,s2,n)忽略大小写比较s1 s2前 n个字符
s1='asdfgh'
s2='Asdfgh'
strcmp(s1,s2)
strncmp(s1,s2,3)
strcmpi(s1,s2)
strncmpi(s1,s2,5)
字符串操作
findstr(s1,s2)
返回短字符串在长字符串中位置
注意:此处为长短关系,与参数的位置无关
如下图所示,交换两个参数位置结果一致
s1='asd1asd2ddd'
s2='asd'
findstr(s1,s2)
findstr(s2,s1)
strrep(s1,s2,s3)
把s1中的s2换成s3
s1='asd1asd2ddd'
s2='asd'
s3='replaced'
strrep(s1,s2,s3)