文档

比较文本

以不同方式比较字符数组和字符串数组中的文本。字符串阵列在R2016B中引入。您可以将字符串数组和角色向量与关系运算符以及strcmp功能。您可以使用种类函数,就像您将任何其他类型的数组排序一样。MATLAB®还提供了检查文本中字符的功能。例如,您可以确定字符向量或字符串数​​组中的哪些字符是字母或空格字符。

比较平等字符串数组

您可以将平等的字符串数组与关系运算符进行比较==〜=。当您比较字符串数组时,输出是一个逻辑数组1关系是正确的,并且0在不正确的地方。

创建两个字符串标量。从R2017A开始,您可以使用双引号创建字符串。

str1 =“你好”;str2 =“世界”;str1,str2
str1 =“你好”
str2 =“世界”

相比str1str2平等。

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

索引str1TF提取匹配的字符串元素双子座。您可以使用逻辑数组将索引索引到数组中。

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人物。您也可以使用strcmpistrncmpi用于不敏感的比较。

比较两个角色向量与strcmp功能。CHR1CHR2不等。

chr1 ='你好';chr2 ='帮助';tf = strcmp(chr1,chr2)
tf =逻辑0

请注意MATLABstrcmp与C版本不同strcmp。C版本的strcmp返回0当两个字符阵列相同时,当它们不同时而不是。

将前两个字符与strncmp功能。TF1因为两个角色向量都从字符开始

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

也可以看看

||||||||||

相关话题