[转载] findstr() 和 strfind()

转自:http://blog.sina.com.cn/s/blog_49c07d4801000a3x.html

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

  1. 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 =
    []

看例子似乎挺简单的,但具体用到我的例子上则有问题,前面的findstr(s1,s2)掉换位置,提示出错。刚刚检查发现是元胞结构体的问题,使用textread()读进来的字符串为什么成cell结构?
通过cell2mat()可以把cell结构转成数据,findstr(),strfind()函数只能对一维字符串数据进行操作,若是二维字符串则得使用别的函数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容