比较文本
以不同方式比较字符数组和字符串数组中的文本。字符串阵列在R2016B中引入。您可以将字符串数组和角色向量与关系运算符以及strcmp
功能。您可以使用种类
函数,就像您将任何其他类型的数组排序一样。MATLAB®还提供了检查文本中字符的功能。例如,您可以确定字符向量或字符串数组中的哪些字符是字母或空格字符。
比较平等字符串数组
您可以将平等的字符串数组与关系运算符进行比较==
和〜=
。当您比较字符串数组时,输出是一个逻辑数组1
关系是正确的,并且0
在不正确的地方。
创建两个字符串标量。从R2017A开始,您可以使用双引号创建字符串。
str1 =“你好”;str2 =“世界”;str1,str2
str1 =“你好”
str2 =“世界”
相比str1
和str2
平等。
str1 == str2
ans =逻辑0
将带有多个元素的字符串数组与字符串标量进行比较。
str1 = [“汞”,,,,“双子座”,,,,“阿波罗”;...“ Skylab”,,,,“ Skylab B”,,,,“国际空间站”];str2 =“阿波罗”;str1 == str2
ans =2x3逻辑数组0 0 1 0 0 0
将字符串数组与字符向量进行比较。只要变量之一是字符串阵列,就可以进行比较。
chr ='双子座';tf =(str1 == chr)
tf =2x3逻辑数组0 1 0 0 0 0
索引str1
和TF
提取匹配的字符串元素双子座
。您可以使用逻辑数组将索引索引到数组中。
str1(TF)
ans =“ gemini”
比较使用不平等的〜=
操作员。索引str1
提取不匹配的元素'双子座'
。
tf =(str1〜 = chr)
tf =2x3逻辑数组1 0 1 1 1 1
str1(TF)
ans =5x1字符串数组“水星”“ Skylab”“ Skylab B”“ Apollo”“国际空间站”
比较两个非标准字符串数组。当您比较两个非标准阵列时,它们的尺寸必须相同。
str2 = [“汞”,,,,“火星”,,,,“阿波罗”;...“木星”,,,,“土星”,,,,“海王星”];tf =(str1 == str2)
tf =2x3逻辑数组1 0 1 0 0 0
索引str1
提取比赛。
str1(TF)
ans =2x1字符串数组“水星”“阿波罗”
将字符串数组与其他关系运算符进行比较
您也可以将字符串与关系运营商进行比较>
,,,,> =
,,,,<
, 和<=
。从大写字母开始的字符串是在以小写字母开头的字符串之前。例如,字符串“ ABC”
小于“ ABC”
。数字和一些标点符号也出现在字母之前。
“ ABC”<“ ABC”
ans =逻辑1
比较一个字符串数组,该数组包含名称到另一个名称>
操作员。名字桑切斯
,,,,de Ponte
, 和纳什
来了马修斯
, 因为s
,,,,d
, 和n
所有人都大于m
。
str = [“桑切斯”,,,,“琼斯”,,,,“ de ponte”,,,,“克罗斯比”,,,,“纳什”];tf =(str>“马修斯”)
tf =1x5逻辑数组1 0 1 0 1
str(TF)
ans =1x3字符串数组“桑切斯”“ de ponte”“ nash”
排序字符串数组
您可以对字符串数组进行排序。MATLAB®使用UTF-16字符编码方案将字符作为Unicode®存储为Unicode®。字符和字符串数组根据UTF-16代码点顺序排序。对于也是ASCII字符的字符,此顺序意味着大写字母是在小写字母之前。数字和一些标点符号也出现在信件之前。
排序字符串数组str
。
排序(str)
ans =1x5字符串数组“ Crosby”“ Jones”“ Nash”“ Sanchez”“ De Ponte”
排序2 x-3字符串数组。这种类
函数分别对每列中的元素进行分类。
排序(str2)
ans =2x3字符串数组“木星”“火星”“阿波罗”“水星”“土星”“海王星”
要对每一行的元素进行排序,请排序str2
沿第二维。
排序(str2,2)
ans =2x3字符串数组“阿波罗”“火星”“水星”“木星”“ Neptune”“土星”
比较字符矢量
您可以将角色向量的字符矢量和单元格数与彼此进行比较。使用strcmp
比较两个字符向量的功能,或strncmp
比较第一个n
人物。您也可以使用strcmpi
和strncmpi
用于不敏感的比较。
比较两个角色向量与strcmp
功能。CHR1
和CHR2
不等。
chr1 ='你好';chr2 ='帮助';tf = strcmp(chr1,chr2)
tf =逻辑0
请注意MATLABstrcmp
与C版本不同strcmp
。C版本的strcmp
返回0
当两个字符阵列相同时,当它们不同时而不是。
将前两个字符与strncmp
功能。TF
是1
因为两个角色向量都从字符开始他
。
tf = strncmp(chr1,chr2,2)
tf =逻辑1
比较两个字符矢量的单元格数组。strcmp
返回与单元格数量相同的逻辑数组。
C1 = {'比萨';“芯片”;'糖果'};C2 = {'比萨';'巧克力';'椒盐脆饼'};StrcMP(C1,C2)
ans =3x1逻辑数组1 0 0
检查字符串和字符阵列中的字符
您可以使用字符串数组或字符数组中的字符ISSTRPROP
,,,,小岛
, 和ISSPACE
功能。
这
ISSTRPROP
检查字符串数组或字符数组中的字符。这
小岛
和ISSPACE
功能仅在字符阵列中检查字符。
确定字符向量中的哪些字符是空间字符。ISSPACE
返回与大小相同的逻辑向量chr
。
chr =“四分,七年前”;tf = isspace(chr)
tf =1x30逻辑阵列0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
这ISSTRPROP
功能可以查询字符的许多不同特征。ISSTRPROP
可以确定字符串或字符向量中的字符是字母,字母数字字符,十进制数字或十六进制数字或标点符号。
确定字符串中的哪个字符是标点符号。ISSTRPROP
返回一个逻辑向量,其长度等于字符数量str
。
str =“一匹马!一匹马!我的王国要马!”
str =“一匹马!一匹马!我的王国要马!”
isstrprop(str,“点”)
ans =1x41逻辑数组0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
确定字符向量中的哪些字符chr
是字母。
isstrprop(chr,“α”)
ans =1x30逻辑阵列1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1
也可以看看
等式
|GE
|GT
|小岛
|ISSPACE
|ISSTRPROP
|le
|上尉
|NE
|种类
|strcmp