来源:https://ww2.mathworks.cn/help/matlab/ref/strcmpi.html?searchHighlight=strcmpi&s_tid=doc_srchtitle

strcmpi

比较字符串(不区分大小写)

全页折叠
 

说明

示例

tf = strcmpi(s1,s2) 将比较 s1s2,并忽略字母大小写差异。如果二者相同,函数将返回 1 (true),否则返回 0 (false)。如果文本的大小和内容相同,则它们将视为相等,不考虑大小写。返回结果 tf 的数据类型为 logical

输入参数可以是字符串数组、字符向量和字符向量元胞数组的任何组合。

 

示例

全部折叠

比较两个字符向量并忽略大小写

比较两个不同的字符向量,并忽略字母大小写差异。

s1 = 'Yes';
s2 = 'No';
tf = strcmpi(s1,s2)
tf = logical
0

strcmpi 返回 0,因为 s1s2 不相等,即使忽略大小写也是如此。

比较两个相等的字符向量。

s1 = 'Yes';
s2 = 'yes';
tf = strcmpi(s1,s2)
tf = logical
1

strcmpi 返回 1,因为忽略大小写时 s1s2 相等。

 
 

查找元胞数组中不区分大小写的匹配项

在字符向量元胞数组中查找与单词 'once' 匹配的文本。忽略大小写。

s1 = 'once';
s2 = {'Once','upon';
'a','time'};
tf = strcmpi(s1,s2)
tf = 2x2 logical array

   1   0
0 0

如果忽略大小写,数组 s2 中将会出现一处 s1,它出现在元素 s2(1,1) 的位置。

 
 

比较元胞数组并忽略大小写

创建两个字符向量元胞数组。要对它们进行比较并忽略大小写,请使用 strcmpi 函数。

s1 = {'Tinker', 'Tailor';
' Soldier', 'Spy'};
s2 = {'Tinker', 'Baker';
'Soldier', 'SPY'}; tf = strcmpi(s1,s2)
tf = 2x2 logical array

   1   0
0 1

tf(1,1)1,因为 'Tinker' 位于两个数组的第一个元胞中。tf(2,2)1,因为 'Spy''SPY' 只有大小写不同。tf(2,1)0,因为 s1(2,1) 中的 ' Soldier' 有空白字符,而 s2(2,1)'Soldier' 没有。

 
 

比较字符串数组并忽略大小写

从 R2017a 开始,您可以使用双引号创建字符串。使用 strcmpi 比较两个字符串数组,并忽略大小写。

s1 = ["A","bc";
"def","G"];
s2 = ["B","c";
"DEF","G"]; tf = strcmpi(s1,s2)
tf = 2x2 logical array

   0   0
1 1
 
 

输入参数

全部折叠

s1,s2 - 输入文本
字符向量 | 字符数组 | 字符向量元胞数组 | 字符串数组

输入文本,其中每个输入指定为字符向量、字符数组、字符向量元胞数组或字符串数组。输入的顺序不影响比较结果。

  • 如果 s1s2 都是字符串数组或字符向量元胞数组,则 s1s2 的大小必须相同,除非其中一个是标量。

  • 如果 s1s2 都是具有多行的字符数组,则 s1s2 可以具有不同的行数。

  • 将字符向量非标量元胞数组或字符串数组与多行字符数组进行比较时,元胞数组或字符串数组必须是行数与字符数组相同的列向量。

数据类型: char | cell | string

输出参数

全部折叠

tf - True 或 false 结果
1 | 0 | 逻辑数组

True 或 false 结果,以数据类型 logical10 形式返回。

  • 如果每个输入都是字符串标量或字符向量,则 tf 是标量。

  • 如果至少一个输入是字符串数组或字符向量元胞数组,则 tf 是大小与输入数组相同的数组。

  • 如果一个输入是具有多行的字符数组,并且另一个输入是标量元胞或字符串标量,则 tfn×1 数组,其中 n 是字符数组中的行数。

  • 如果两个输入都是字符数组,则 tf 是标量。

提示

  • strcmpi 函数用于比较文本。如果用于不受支持的数据类型,strcmpi 将始终返回 0

  • 对于区分大小写的文本比较,请使用 strcmp 而不是 strcmpi

  • 虽然 strcmpi 与 C 函数共享名称,但它不遵循在文本输入匹配时返回 0 的 C 语言惯例。

扩展功能

tall 数组
对行数太多而无法放入内存的数组进行计算。

此函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组

C/C++ 代码生成
使用 MATLAB Coder 生成 C 代码和 C++ 代码。

用法说明和限制:

  • 不支持枚举输入。

  • 来自 char 类的输入值必须在 0-127 的范围内。

  • 如果一个输入为元胞数组,另一个输入为字符数组,则字符数组必须为编译时行向量。

  • 如果两个输入均为空字符数组,只是大小不同,则生成的代码将返回 true

另请参阅

eq | ne | regexp | regexpi | sort | strcmp | strfind | strncmp | strncmpi

主题

在 R2006a 之前推出

matlab中strcmpi比较字符串(不区分大小写)的更多相关文章

  1. matlab中 注意事项--字符串

    Matlab中的字符串操作 原文链接:http://hi.baidu.com/dreamflyman/item/bd6d8224430003c9a5275a9f (1).字符串是以ASCII码形式存储 ...

  2. matlab中upper 将字符串转换为大写

    参考:https://ww2.mathworks.cn/help/matlab/ref/fprintf.html?searchHighlight=fprintf&s_tid=doc_srcht ...

  3. matlab中的字符串数组与函数调用

    1, matlab中的字符串就是1维字符数组,即如: a = 'dddssd'; b = 'lsde'; c = [a, b]; 当然也可以: c= strcat(a, b); 2, matlab中的 ...

  4. (专题一)07 matlab中字符串的表示

    matlab中,字符串使用单引号括起来的字符序列 >>xm='Central South University' >>xm(1:3) ans= Cen 截取1--3这三个字符, ...

  5. matlab中findstr,strfind,strcmp,strncmp区别与联系

    在Matlab中,这几个函数区分如下: (以下默认S1和S2是字符串,同样也适用于cell细胞类型数据,也就是循环对cell中每个元素分别判断即可.) findstr(S1,S2):寻找是否有S1和S ...

  6. 【matlab】将matlab中数据输出保存为txt或dat格式

    将matlab中数据输出保存为txt或dat格式 总结网上各大论坛,主要有三种方法. 第一种方法:save(最简单基本的) 具体的命令是:用save *.txt -ascii x x为变量 *.txt ...

  7. 将matlab中数据输出保存为txt或dat格式

    :FID= FOPEN(filename,permission) 用指定的方式打开文件 FID=+N(N是正整数):表示文件打开成功,文件代号是N. FID=-1            : 表示文件打 ...

  8. MATLAB中的函数的归总

    字符串操作函数 1.        函数eval可以用来执行用字符串表示的表达式 2.        函数deblank可以去掉字符串末尾的所有空格 3.        函数findstr可以用来在长 ...

  9. Matlab中函数定义方法

    Matlab自定义函数的六种方法 n1.函数文件+调用函数(命令)文件:需单独定义一个自定义函数的M文件: n2.函数文件+子函数:定义一个具有多个自定义函数的M文件: n3.Inline:无需M文件 ...

随机推荐

  1. SpringBoot中加载XML配置

    开篇 在SpringBoot中我们通常都是基于注解来开发的,实话说其实这个功能比较鸡肋,但是,SpringBoot中还是能做到的.所以用不用是一回事,会不会又是另外一回事. 涛锅锅在个人能力能掌握的范 ...

  2. 【经验分享】用adb揪出安卓APP弹窗广告的原形

    背景 相信不少安卓用户中过影子弹窗广告的困扰,这种推广APP本体在后台运行,而且可以在其他APP上弹出覆盖广告,一不小心就会误操作,点击广告或者下载APP,着实令人恶心. 以前的广告软件只在通知栏会推 ...

  3. Spine学习七 - spine动画资源+ Unity Mecanim动画系统

    前面已经讲过 Spine自己动画状态机的动画融合,但是万一有哥们就是想要使用Unity的动画系统,那有没有办法呢?答案是肯定的,接下来,就说说如何实现: 1. 在project面板找打你导入的Spin ...

  4. 敏捷转型谁先动:老总,项目经理or团队

    摘要: 敏捷转型成功的企业究竟是从老总开始?还是从项目经理开始?还是团队本身具有这种意识?相信还有很多想要转型敏捷的公司都存在这样的疑问. 从06年首届敏捷中国开发者大会召开到现在,敏捷方法在国内的应 ...

  5. Activiti7 网关(排他网关)

    什么是排他网关? 排他网关(也叫异或(XOR)网关,或叫基于数据的排他网关),用于在流程中实现决策,当流程执行到这个网关,所有分支都会判断条件是否为true,如果为true则执行该分支 注意:排他网关 ...

  6. Mybatis源码学习第七天(插件源码分析)

    为了不把开发和源码分析混淆,决定分开写; 接下来分析一下插件的源码,说道这里老套路先说一个设计模式,他就是责任链模式 责任链模式:就是把一件工作分别经过链上的各个节点,让这些节点依次处理这个工作,和装 ...

  7. Nginx升级加固SSL/TLS协议信息泄露漏洞(CVE-2016-2183)

    Nginx升级加固SSL/TLS协议信息泄露漏洞(CVE-2016-2183) 漏洞说明 // 基于Nginx的https网站被扫描出SSL/TLS协议信息泄露漏洞(CVE-2016-2183),该漏 ...

  8. sublime3 激活

    起因 这段时间sublime一直抽风,每次打开都提示让我更新. 身为强迫症的我当然不能忍! 方法 关闭自动更新 点击菜单栏"Preferences"=> "Sett ...

  9. DNS 劫持/污染

    who is dns 劫持 or 污染? 对 劫持 和 污染 这两个名词的理解一直都很混淆,这里就简单的记录一下他俩到底有哪些本质上的区别吧~ DNS 劫持 DNS劫持 即: DNS Hijackin ...

  10. if __name__ == ‘__main__‘

    if __name__ == '__main__': def_test() 作为程序的入口,当函数被调用时会从此处开始运行 如被导入的模块内没写 if __name__ == '__main__',则 ...