利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。
素材来源“数学建模清风”
特此说明:本博客的内容只在于总结在使用matlab中的一些小技巧,并非教程,若想系统的学习MATLAB,也可以移步去链接中的视频,观看学习。也欢迎各位在留言区补充,纠错,讨论。
字符串的比较、查找和替换
1 字符串的比较
比较字符串主要是比较字符串是否相同、字符串中的子串是是否相同和比较字符串的个别字符是否相同,常用的两个比较字符串的函数是strcmp和strncmp
(1)strcmp函数:strcmp(str1,str2)
比较两个字符串是否相同。相同返回1,不相同返回0。当所比较的两个字符串是单元数组时,返回值为一个列向量,元素为相应行比较的结果。
(2)strncmp函数: strncmp(str1,str2,n)
用于比较两个字符串前面的几个字符是否相同。当字符串前的n个字符相同时,返回1,否则返回0.当所比较的两个字符是单元数组时,返回值为一个列向量,元素为相应行比较的结果。
例:
str1 = ['MATLAB']
str2 = ['MATlab']
strcmp(str1,str2)
strncmp(str1,str2,3)
strncmp(str1,str2,4)
除了利用上面两个函数进行比较之外,还可以通过简单运算比较两个字符串。当两个字符串拥有相同的维数时,可以利用 MATLAB 运算法则,对字符数组进行比较。字符数组的比较与数值数组的比较后基本相同,不同之处在于:字符数组在比较时进行比较的是字符的 ASCI码值。进行比较后返回的结果为一个数值向量,元素为对应字符比较的结果。需要注意的是:在利用这些运算比较字符串时,相互比较的两个字符串必须有相同数目的元素。
各运算符及其意义如下表:
例:
str1 = ['MATLAB']
str2 = ['MATlab']
str1==str2
str1=='A'
str1~=str2
str1>str2
str1<str2
str1>=str2
str1<=str2
该例中,首先判断两个字符串是否相同,字符串“MATLAB”和“MATlab”的前三个字符相同,后面三个字符不同,因此返回值为三个1和三个0。第二条语句与此类似。第三条语句比较字符串str1中的字符是否为“M”,返回结果为第一个元素为1、后面五个元素为0的数组,表示该字符串的第一个字符为“M”
除上面介绍的两个字符串之间的比较之外,MATLAB还可以判断字符串中的字符是否为空格字符或字母。实现这两个功能的函数分别为isspace和isleter。
(1)isspace函数:isspace(str)
判断字符串str中的字符是否为空格,是空格字符,返回1,否则返回0.
(2)isletter函数:isletter(str)
判断字符串str中的字符是否为字母,是字母,则返回1,否则返回0.
2 字符串的查找和替换
常用的查找函数有:findstr、strmatch、strrep、strtok函数等
函数名 | 用法 | 意义 |
---|---|---|
findstr函数 | findstr(str1,str2) | 用于在一个字符串中查找子字符串,返回子字符串出现的起始位置。执行时系统首先判断两个字符串的长短,然后在长的字符串中检索短的子字符串。 |
strmatch函数 | strmatch(‘str’,XXX) | 在字符数组的每一行中查找是否存在待查找的字符串,存在,则返回1,否则返回 0。用法为 strmatch('str,XXX),查找 st 中以 XXX 开头的字符串。另外,可以使用 strmatch(',XXX,exact)查找精确包含 STRS 的字符串。 |
strrep函数 | str=strrep(str1,str2,str3) | 查找字符串中的子字符串并将其替换为另一个子字符串。 |
strtok函数 | strtok(str) | 该函数用于选取字符串中的一部分 |
3 字符串与数值之间的转换
常用的字符串转换函数: