MATLAB基础操作7 |
您所在的位置:网站首页 › matlab中提取矩阵的列 › MATLAB基础操作7 |
字符串的表示
在MATLAB中,字符串是用单引号括起来的字符序列。MATLAB把一个字符串当作一个行向量,这个行向量中每一个元素对应一个字符,它的引用方法和数值向量相同。 >> name = 'HkSwaggyD'; >> name(1:2) ans = Hk注意:如果字符串中的字符含有单引号,则该单引号字符要用两个单引号表示。 >> 'I''m HkSwaggyD' ans = I'm HkSwaggyD除了一行字符串,MATLAB也支持建立多行字符串,形成字符串矩阵。此时要求各行字符数相等,即列数要相同。因此当各行字符数不相等时,需要用空格来调节各行的长度,使它们的列数彼此相同。 例:建立一个字符串向量,然后对该向量做如下处理: ① 取第1~5个字符组成的子字符串。 ② 将字符串倒过来重新排列。 ③ 将字符串中的小写字母变成相应的大写字母。 ④ 统计字符串中小写字母个数。 >> ch = 'ABc123d4e56Fg9'; >> subch = ch(1: 5) %① subch = ABc12 >> revch = ch(end: -1: 1) %② revch = 9gF65e4d321cBA >> k = find(ch >= 'a' & ch < 'z') %③先找出小写字母位置 k = 3 7 9 13 >> ch(k) = ch(k) - 32 %小写字母对应的ASCII码要减32 ch = ABC123D4E56FG9 >> length(k) %④ ans = 4 字符串的操作MATLAB本身提供了一些函数来完成字符串的操作。 字符串的执行 eval()函数格式: eval(字符串) 作用:把参数字符串中的内容作为对应的MATLAB命令来执行。 >> x = eval('[pi, sin(pi), cos(pi)]') x = 3.1416 0.0000 -1.0000 字符串与数值之间的转换我们知道字符串是以ASCII码的形式存储的,abs()和double()函数都可以用来获取字符串矩阵对应的ASCII码矩阵,char()函数则把ASCII码矩阵转化为字符串矩阵。 字符串的比较我们可以用关系运算符或字符串比较运算函数来进行字符串的比较。 关系运算符比较(当两个字符串长度相同时)对两个字符串里的每一个字符依次按ASCII码大小逐一比较,比较结果是一个数值向量,元素由1或0构成,为对应两个字符串里字符比较的结果。 字符串比较函数(用于判断字符串是否相等)strcmp(s1, s2):比较字符串s1和s2是否相等,如果相等,结果为1,否则为0。 strncmp(s1, s2, n):比较两个字符串前n个字符是否相等,如果相等,结果为1,否则为0。 strcmpi(s1, s2):在忽略字母大小写的前提下,比较字符串s1和s2是否相等,如果相等,结果为1,否则为0。 strncmpi(s1, s2, n):在忽略字母大小写的前提下,比较两个字符串前n个字符是否相等,如果相等,结果为1,否则为0。 字符串的查找与替换findstr(s1, s2):返回短字符串在长字符串中的开始位置。 strrep(s1, s2, s3):将字符串s1中的所有子串s2替换为字符串s3。 >> c = 'This is a test.'; >> p = findstr('is', c) p = 3 6 >> r = strrep(c, 'test', 'class') r = This is a class. >> |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |