matlab字符串操作函数积累记录(不定期更新)
- eval() — 执行运行字符串的表达式
对于matla的相关数据处理来说,eval()函数绝对是神器。本人目前用的最多的是对于变量的命名以及数据读取上面。利用for循环可以批量对变量进行读取和赋值,由此批量存取数据。
如对变量a_1- a_10分别赋值1-10的数据,可以考虑eval()
%code1
for i = 1:10
eval(['a_',num2str(i),'=i;'])
end
此处需要注意eval()函数内部对于字符串的拼接。
- num2str()–将数字转换为字符串,由于主要接触的还是在科学计算方面,使用较多的还是在多变量批量命名上。类似的函数还有int2str,mat2str,str2double等,功能与之类似。
- deblank() — 删除字符串的尾部空格
- findstr() — 在长字符串中查找短的字符串,并返回相应位置(长短字符串不区分位置)
%code2
s = 'How much wood would a woodchuck chuck?';
findstr(s,'a') returns 21
findstr('a',s) returns 21
findstr(s,'wood') returns [10 23]
findstr(s,'Wood') returns []
findstr(s,' ') returns [4 9 14 20 22 32]
- isstr()判断变量是否为字符串
- isletter()判断一个字符串是各个元素是否为字母,返回值为与字符串等长的0-1向量
- isspace()判断字符串各个元素是否为空格符,返回值为与字符串等长的0-1向量
- lower()和upper()与函数可以把字符串的所有字母转为小写和大写格式
- strcat()把多个字符串水平方向依次连接
- strvcat()字符串按数值方向连接
- strjust(S,mode)按照格式调整字符串的对其方式,mode = ‘left’, ‘right’, ‘center’
注意对于水平了解还有一种方式如code1的方式,在连接空格上处理方式如下
%code3
s1 = 'Red'; s2 = 'Green'
S1 = [s1,' ',s2]
S2 = strcat(s1,char(127*ones(1,9)),s2)
S3= strvcat(s1,s2)
% S3中的返回结果按左对齐方式排列,右侧按最长字符的长度为准,短的行由空格符补齐
S3 = strjust(S3,'center')
- strcmp()比较两个字符串,完全相同时返回逻辑变量1,否则为0
- strcmpi()忽略字母大小写的方式比较两个字符串