matlab字符串处理

matlab中字符串用单引号括起来,当作行向量
字符串中的单引号用双引号表示
可用矩阵操作提取子串

str='asdad''sa'
str(1:4)
image.png

多行字符串,可看成多行的矩阵,每行的字符串长度应该相等
不等的话,需要空格调节长度

ch=['abc ';'def1';'hijk']
ch(2,3)
image.png

字符串操作

eval(s)

s为字符串,把s看成一条指令并执行
此处若单独计算sin(pi),会因为精度问题结果不为0

t=pi;
m='[sin(t),cos(t)]';
y=eval(m)
image.png

字符串和数值的转化

abs() double()

可以得到字符的ASCII码值

char函数

可以把数值转化为字符

x='asdf'
k1=double(x)
k2=abs(x)
x2=char(k2-32)
image.png

字符串比较

关系运算符

两个字符串每个字符依此比较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)
image.png

字符串操作

findstr(s1,s2)

返回短字符串在长字符串中位置
注意:此处为长短关系,与参数的位置无关
如下图所示,交换两个参数位置结果一致

s1='asd1asd2ddd'
s2='asd'
findstr(s1,s2)
findstr(s2,s1)
image.png

strrep(s1,s2,s3)

把s1中的s2换成s3

s1='asd1asd2ddd'
s2='asd'
s3='replaced'
strrep(s1,s2,s3)
image.png

你可能感兴趣的:(matlab字符串处理)