【精选】Matlab中比较文本 您所在的位置:网站首页 matlab编写函数对多个字符串数组进行排序 【精选】Matlab中比较文本

【精选】Matlab中比较文本

2023-10-18 13:30| 来源: 网络整理| 查看: 265

目录

比较文本

比较字符串数组是否相等

使用其他关系运算符比较字符串数组

对字符串数组排序

比较字符向量

检查字符串数组和字符数组中的字符

比较文本

        以不同的方式比较字符数组和字符串数组中的文本。R2016b 中引入了字符串数组。可以使用关系运算符和 strcmp 函数来比较字符串数组和字符向量。可以使用 sort 函数对字符串数组进行排序,就像对任何其他类型的数组进行排序一样。MATLAB® 还提供用于检查文本片段中的字符的函数。例如,可以确定字符向量或字符串数组中的哪些字符为字母或空格字符。

比较字符串数组是否相等

        可以使用关系运算符 == 和 ~= 来比较字符串数组是否相等。当比较字符串数组时,输出为一个逻辑数组。如果关系为 true,则该逻辑数组包含 1;如果关系不为 true,则包含 0。创建两个字符串标量。从 R2017a 开始,可以使用双引号创建字符串。

str1 = "Hello"; str2 = "World"; str1,str2 str1 = "Hello" str2 = "World"

        比较 str1 和 str2 是否相等。

str1 == str2 ans = logical 0

        将一个包含多个元素的字符串数组与一个字符串标量进行比较。

str1 = ["Mercury","Gemini","Apollo";... "Skylab","Skylab B","International Space Station"]; str2 = "Apollo"; str1 == str2 ans = 2x3 logical array 0 0 1 0 0 0

        将一个字符串数组与一个字符向量进行比较。只要其中一个变量为字符串数组,就可以进行比较。

chr = 'Gemini'; TF = (str1 == chr) TF = 2x3 logical array 0 1 0 0 0 0

        使用 TF 对 str1 进行索引以提取与 Gemini 匹配的字符串元素。可以使用逻辑数组对某个数组进行索引。

str1(TF) ans = "Gemini"

        使用 ~= 运算符进行不相等比较。对 str1 进行索引以提取与 'Gemini' 不匹配的元素。

TF = (str1 ~= chr) TF = 2x3 logical array 1 0 1 1 1 1 str1(TF) ans = 5x1 string array "Mercury" "Skylab" "Skylab B" "Apollo" "International Space Station"

        比较两个非标量字符串数组。当您比较两个非标量数组时,这两个数组的大小必须相同。

str2 = ["Mercury","Mars","Apollo";... "Jupiter","Saturn","Neptune"]; TF = (str1 == str2) TF = 2x3 logical array 1 0 1 0 0 0

        对 str1 进行索引以提取匹配项。

str1(TF) ans = 2x1 string array "Mercury" "Apollo" 使用其他关系运算符比较字符串数组

        也可以使用关系运算符 >、>=、 "Matthews") TF = 1x5 logical array 1 0 1 0 1 str(TF) ans = 1x3 string array "Sanchez" "de Ponte" "Nash" 对字符串数组排序

        可以对字符串数组进行排序。MATLAB® 使用 UTF-16 字符编码方案以 Unicode® 方式存储字符。字符和字符串数组按 UTF-16 代码点顺序进行排序。对于同时也是 ASCII 字符的字符,此顺序意味着大写字母在小写字母之前。数字和某些标点符号也在字母之前。对字符串数组 str 进行排序。

sort(str) ans = 1x5 string array "Crosby" "Jones" "Nash" "Sanchez" "de Ponte"

        对一个 2×3 字符串数组进行排序。sort 函数会单独对每列中的元素进行排序。

sort(str2) ans = 2x3 string array "Jupiter" "Mars" "Apollo" "Mercury" "Saturn" "Neptune"

        要对每行中的元素进行排序,请沿第二个维度对 str2 进行排序。

sort(str2,2) ans = 2x3 string array "Apollo" "Mars" "Mercury" "Jupiter" "Neptune" "Saturn" 比较字符向量

        可以对字符向量和字符向量元胞数组进行相互比较。使用 strcmp 函数比较两个字符向量,或者使用 strncmp 比较前 N 个字符。也可以使用 strcmpi 和 strncmpi 进行不区分大小写的比较。使用 strcmp 函数比较两个字符向量。chr1 和 chr2 不相同。

chr1 = 'hello'; chr2 = 'help'; TF = strcmp(chr1,chr2) TF = logical 0

        请注意,MATLAB strcmp 与 strcmp 的 C 版本不同。当两个字符数组相同而非不同时,strcmp 的 C 版本会返回 0。

        使用 strncmp 函数比较前两个字符。由于两个字符向量都以字符 he 开头,因此 TF 为 1。

TF = strncmp(chr1,chr2,2) TF = logical 1

        比较两个字符向量元胞数组。strcmp 会返回一个与元胞数组大小相同的逻辑数组。

C1 = {'pizza'; 'chips'; 'candy'}; C2 = {'pizza'; 'chocolate'; 'pretzels'}; strcmp(C1,C2) ans = 3x1 logical array 1 0 0 检查字符串数组和字符数组中的字符

可以使用 isstrprop、isletter 和 isspace 函数检查字符串数组或字符数组中的字符。

isstrprop 可检查字符串数组或字符数组中的字符。

isletter 和 isspace 函数只能检查字符数组中的字符。

确定字符向量中的哪些字符是空格字符。isspace 会返回一个与 chr 大小相同的逻辑向量。

chr = 'Four score and seven years ago'; TF = isspace(chr) TF = 1x30 logical array 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0

  isstrprop 函数可以查询字符的许多不同特性。isstrprop 可以确定字符串或字符向量中的字符是字母、字母数字字符、十进制或十六进制数字还是标点字符。确定字符串中的哪些字符是标点符号。isstrprop 会返回一个长度等于 str 中的字符数量的逻辑向量。

str = "A horse! A horse! My kingdom for a horse!" str = "A horse! A horse! My kingdom for a horse!" isstrprop(str,"punct") ans = 1x41 logical array 0 0 0 0 0 0 0 1 0 0 0 0 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 1

        确定字符向量 chr 中的哪些字符是字母。

isstrprop(chr,"alpha") ans = 1x30 logical array 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有