罗兰关于MATLAB的艺术

将想法转化为MATLAB

找到字符串

多年来,MATLAB已经成为一个更友好的环境来处理字符信息。MATLAB具有一套丰富的文本处理函数,从简单到全能正则表达式功能(覆盖在这里).今天我将介绍一些简单而又非常有用的字符串函数。

内容

使用strfind

使用strfind而不是找到为字符串搜索。

  • 首选
strfind (' abc ', ' ')
  • 不推荐
中(“abc”,“a”)

这种用法可能会稍微慢一些,并且可能会导致混淆,因为无法知道在另一个字符串中找到了哪个字符串。

  • 不推荐
找到(' abc ' = = ' a ')

这个用法大约是它的5倍strfind,并且不健壮,因为只有当其中一个参数to时,它才能工作==是标量。

  • 好处
-速度的提高,更少的内存(没有临时的逻辑语句的结果在find -没有歧义的字符串,如果想以后的索引,如果需要-代码是健壮的,相比之下,不能处理一般的情况,也不像find那样快。

使用strrep

使用strrep而不是通过索引替换值。

  • 首选(从字符串中删除空格)
STR = strrep(STR,'', ")
  • 不推荐
find(str==' ');Str (Str ==' ') = []
  • 首选(删除从字符串,例如菜单加速器)
str = strrep (str,‘&’,”)
  • 不推荐
menuLabelStr(找到(menuLabelStr =='&')) = []
  • 好处
-速度-可读性-更一般的,即替换字符串不需要是相同的大小(或空),作为他们替换的字符串

使用strncmp

使用strncmp而不是strmatch用文字的第二个输入。

  • 首选
strncmp (str,字符串,长度(str))
  • 不推荐
strmatch (str,“字符串”)
  • 不推荐
strmatch (str,“弦”、“准确”)
  • 好处
——速度
  • 请注意
strmatch返回找到字符串的索引,而STRNCMP返回true/false,所以升级代码不仅仅需要复制/粘贴。

使用strcmpi

使用strcmpi而不是使用比较字符串较低的

  • 首选
strcmpi (str lcstring)
  • 不推荐
比较字符串(低(str),“lcstring”)
  • 好处
-速度-更少的函数调用-更少的临时变量-可读性

使用ismember

使用ismember向量化字符串查找操作。

  • 首选
宠物={“猫”、“狗”、“狗”、“狗”、“长颈鹿”;“仓鼠”}={‘猫’‘狗’}物种(tf, loc) = ismember(宠物,物种)
  • 不推荐
loc = 0(长度(宠物),1);For k = 1:length(species) tf = strcmp(pets, species(k));loc (tf) = k;结束
  • 好处
——速度
  • 请注意
strfind在字符串的单元格数组上工作,并在单元格数组中返回结果,带有相关的索引。它做部分匹配。- ismember要求精确匹配。输出与strfind的不同,因此编码不仅仅是直接替换的问题。

总结

我已经讨论了MATLAB中一些简单的字符串函数。你有一些简单的字符串建议给用户吗?把你的想法在这里




MATLAB®7.3发布

|
  • 打印
  • 发送电子邮件

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。