matlab中的findstr与strfind函数

matlab中这两个字符串查找的函数findstr(), strfind()表明上看起来用法相似,效果也相似。
1. findstr(s1,s2)--在较长的字符串中查找较短的字符串出现的次数,并返回其位置,因此无论s1,s2哪个为长字符串,位置在前在后都没有关系。
 
例:

s = 'Find the starting indices of the shorter string.';

findstr(s, 'the')
ans =
     6    30

findstr('the', s)
ans =
     6    30

 

2. strfind(s1,s2)--or strfind(s1,pattern),因此其意思在s1中搜索pattern,

例:

S = 'Find the starting indices of the pattern string';
strfind(S, 'in')
ans =
     2    15    19    45

strfind(S, 'In')
ans =
     []

  • 10
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: findstr函数MATLAB的一个字符串查找函数,用于在一个字符串查找另一个字符串出现的位置。 其语法为:[startIndex,endIndex] = findstr(str,subStr) 其str为待查找的字符串,subStr为要查找的子字符串。函数返回值为一个包含子字符串在原字符串出现位置的起始和结束索引的向量。 例如,若str为"Hello World",subStr为"lo",则函数返回值为[4,5],表示子字符串"lo"在原字符串从第4个字符开始出现,到第5个字符结束。 需要注意的是,findstr函数区分大小写,若要进行不区分大小写的查找,可以使用strfind函数。 ### 回答2: MATLABfindstr函数是一种字符串查找函数,它能够在一个字符串查找是否存在某个子串,并返回该子串在原字符串的位置。具体的用法如下。 findstr(str, pattern) 其str是要进行查找的字符串,pattern是要查找的子串。该函数返回一个向量,向量的每个元素表示对应位置上匹配上的子串起始位置。如果不存在匹配的子串,则返回一个空向量。 需要注意的是,MATLAB的字符串并不是char数组,而是一种新的数据类型string。因此,在使用findstr函数时,需要先将string类型转化成char数组类型,例如: str = 'hello, world!'; pattern = 'world'; result = findstr(char(str), char(pattern)); 这样,就能够得到结果result为7,表示在原字符串从第7个位置开始匹配上了'world'这个子串。 同时,MATLAB还有另外一种字符串查找函数strfind,使用方法与findstr类似。但是,strfind函数在某些版本可能已经被弃用,因此建议使用findstr函数。 总之,findstr函数MATLAB非常实用的字符串查找函数,在字符串处理经常用到。 ### 回答3: MATLABfindstr函数是一个非常有用的字符串处理函数,其作用是在一个字符串查找另一个字符串,返回它们出现的位置。 1、语法 findstr(str1,str2):在str1查找str2,返回str2在str1的开始位置。(不支持区分大小写) 参数说明: str1:被查找字符串 str2:查找关键字 2、功能 findstr函数常用于查找字符串的特定内容,从而实现对字符串的处理。其功能特点如下: (1) 可以查找多个关键字 findstr函数可以在被查找字符串查找多个关键字,在找到第一个匹配项后,可以继续寻找后面的匹配项。例如: findstr('This is a test','is') % 返回 3 和 6 (2) 返回多个匹配项 如果被查找字符串有多个匹配项,findstr函数也可以返回它们的位置,这些位置被包含在一个向量。例如: findstr('This is a test','s') % 返回 4、6 和 11 (3) 区分大小写 findstr函数默认是区分大小写的,如果需要搜索不区分大小写的字符串,则需要指定 'IgnoreCase' 选项为 true 。例如: findstr('This is a test','is') % 返回3和6 findstr('This is a test','IS','IgnoreCase',true) % 返回3和6 (4) 搜索的范围 如果需要在字符串的一部分进行搜索,则可以使用下面的语法: findstr(str1(str2:str3),str4) 其str1是要进行搜索的整个字符串,str2和str3分别是搜索的起始位置和结束位置,str4是要查找的关键字。 3、应用实例 (1) 在字符串搜索某个特定的单词 str = 'This is a test string.'; key = 'test'; idx = findstr(str,key); idx的值为 11,说明关键字 'test' 在字符串出现在第11个字符处。 (2) 在一个字符串向量搜索多个关键字 str = {'This is a test string.';'Find asparagus and eggs.'}; key = {'test','asparagus','eggs'}; idx = findstr(str,key); idx的值为[11;6;18],说明三个关键字分别在两个字符串的位置为11、6和18。 (3) 在一个字符数组搜索某个字母 str = ['abcd';'efgh';'ijkl']; key = 'd'; idx = findstr(str,key); idx的值为4,说明字母 'd' 在字符数组出现在第4个位置。 (4) 指定搜索范围搜索关键字 str = 'This is a test string.'; key = 'is'; idx = findstr(str(1:9),key); idx的值为[3;6],说明在字符串 'This is a ' 共有两个 'is'。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值