在Matlab中,这几个函数区分如下:

(以下默认S1和S2是字符串,同样也适用于cell细胞类型数据,也就是循环对cell中每个元素分别判断即可。)

findstr(S1,S2):寻找是否有S1和S2之间的匹配,真返回1,假返回0,双向;

例:          s = 'How much wood would a woodchuck chuck?';

                findstr(s,'a')    returns  21

                findstr('a',s)    returns  21

                findstr(s,'wood') returns  [10 23]

                findstr(s,'Wood') returns  []

                findstr(s,' ')    returns  [4 9 14 20 22 32]

strfind(S1,S2):寻找S2是否匹配S1,和上面的唯一区别就是这个是单向的。请注意唯一的区别在例子中红字部分。

 例:       s = 'How much wood would a woodchuck chuck?';

               strfind(s,'a')    returns  21

               strfind('a',s)    returns  []

               strfind(s,'wood') returns  [10 23]

               strfind(s,'Wood') returns  []

               strfind(s,' ')    returns  [4 9 14 20 22 32]

strcmp(S1,S2):寻找S1和S2是否完全匹配,S1和S2没有顺序的区分。

例:       s= 'wooden';

              strcmp(s,'wood')    returns 0

              strcmp(s,'wooden')    returns 1

              strcmp('wooden',s)    returns 1

strcnmp(S1,S2,n):寻找S1和S2的前n个字符是否完全匹配,S1和S2没有顺序的区分。

例:       s= 'wooden';

             strncmp(s,'wood',4)    returns 1

             strncmp(s,'wood',5)    returns 0

              strncmp(s,'wooden',4)    returns 1

              strncmp('wooden',s,4)    returns 1

strcmpi(S1,S2)与strncmpi(S1,S2,n)与上面分别对应的strcmp(S1,S2)与strncmp(S1,S2,n)完全相同,唯一的区分是匹配时不区分大小写。

参考文献:

<http://www.mathworks.com/matlabcentral/newsreader/view_thread/257590>

<http://www.mathworks.com/matlabcentral/newsreader/view_thread/145799>

<http://www.mathworks.com/matlabcentral/newsreader/view_thread/145799>

<http://www.mathworks.de/matlabcentral/newsreader/view_thread/294626>

 

源文档 <http://blog.163.com/6_mao/blog/static/63271315201110203738923/>

matlab中findstr,strfind,strcmp,strncmp区别与联系的更多相关文章

  1. MATLAB中 histogram 和 imhist 的区别

    matlab有两个生成直方图的库函数,分别是imhist和histogram,二者有何区别呢? 区别就是: imhist 官方help:imhist(I) calculates the histogr ...

  2. MATLAB中feval与eval的区别

    feval函数有两种调用形式1.[y1, y2, ...] = feval(fhandle, x1, ..., xn)2.[y1, y2, ...] = feval(fname, x1, ..., x ...

  3. Matlab中^2和.^2的区别

    矩阵a a^2 --  两个矩阵相乘 a.^2  --  表示 矩阵对应位置相乘 如下: a=[ 1,2,3 4,5,6 7,8,9]; disp(a); disp(a^2); disp(a.^2); ...

  4. matlab中的卷积——filter,conv之间的区别

    %Matlab提供了计算线性卷积和两个多项式相乘的函数conv,语法格式w=conv(u,v),其中u和v分别是有限长度序列向量,w是u和v的卷积结果序列向量. %如果向量u和v的长度分别为N和M,则 ...

  5. MATLAB 中gcf、gca 以及gco 的区别

    MATLAB 中gcf.gca 以及gco 的区别gcf 返回当前Figure 对象的句柄值gca 返回当前axes 对象的句柄值gco 返回当前鼠标单击的句柄值,该对象可以是除root 对象外的任意 ...

  6. matlab中 mcc/mbuild/mex 区别

    mcc 的作用是将 .m文件编译为 c/c++动态链接库文件,使你可以在 c/c++程序中使用 matlab的一些函数功能.mcc 也可以将.m文件编译为exe可执行文件. mex 的作用是将 c/c ...

  7. Matlab中的eig函数和Opecv中eigen()函数的区别

    奇异值分解的理论参见下面的链接 http://www.cnblogs.com/pinard/p/6251584.html https://blog.csdn.net/shenziheng1/artic ...

  8. matlab中imfilter、conv2、imfilter2用法及区别

    来源 :https://blog.csdn.net/u013066730/article/details/56665308(比较详细) https://blog.csdn.net/yuanhuilin ...

  9. Matlab中的数据类型

    Matlab中有15种基本数据类型,主要是整型.浮点.逻辑.字符.日期和时间.结构数组.单元格数组以及函数句柄等.         1.整型:(int8:uint8:int16:uint16:int3 ...

随机推荐

  1. 介绍一种css水平垂直居中的方法(非常好用!)

    这次介绍一下一个水平垂直居中的css方法,这个方法可以说是百试百灵,废话不多说,直接附上代码: html,body{ width:100%; height:100%; } 你需要居中的元素{ posi ...

  2. Node.js之Promise维护(同步)多个回调(异步)状态

    金天:学习一个新东西,就要持有拥抱的心态,如果固守在自己先前的概念体系,就会有举步维艰的感觉..NET程序员初用node.js最需要适应的就是异步开发, 全是异步,常规逻辑下遍历列表都是异步,如何保证 ...

  3. android中实现view可以滑动的六种方法续篇(二)

    承接上一篇,上一篇中讲解了实现滑动的第五种方法,如果你还没读过,可点击下面链接: http://www.cnblogs.com/fuly550871915/p/4985482.html 这篇文章现在来 ...

  4. cocos2d-x之Vector与map

    bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getIn ...

  5. Eclipse中使用Git-让版本管理更简单

    详细步骤: 第一部分  GIT介绍 (1)GIT往世今生 2005年开发Samba的Andrew试图破解BitKeeper(一款商业的版本控制系统)的协议(这么干的其实也不只他一个),被BitMove ...

  6. Linked List Cycle

    Given a linked list, determine if it has a cycle in it. /** * Definition for singly-linked list. * s ...

  7. Check list

                            greenplum    

  8. Hadoop学习之SecondaryNameNode

    在启动Hadoop时,NameNode节点上会默认启动一个SecondaryNameNode进程,使用JSP命令可以查看到.SecondaryNameNode光从字面上理解,很容易让人认为是NameN ...

  9. cri-o pod 创建源码分析

    1. server/sandbox.go // RunPodSandbox creates and runs a pod-level sandbox func (s *Server) RunPodSa ...

  10. jemter的使用(三)

    前面的文章已经把接口请求.响应等前序工作做好,那么如何施加压力呢,看下面 1.点击线程组,设置线程属性,其中:线程数即并发用户数,ramp-up period是多长时间初始化上面的并发用户数,循环次数 ...