加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MATLAB读取文件后指定字符串列的提取

(2018-01-08 08:57:40)
标签:

cxd1301

轩辕小子

matlab字符串匹配

strfind

查找字符串

分类: matlab

最近参加天池大赛,在数据预处理中,遇到如下问题:

1Excel读取的时候由于段名称是字符串型,会被存储在text中,类型为cell

[data,text]=xlsread('训练.xlsx');  %% 还可以用[data,text,rawdata]作为输出,具体方法参考另外一篇博文MATLAB读写Excel数据

如果需要查找某个名称的字段该如何处理,比如数据中存在路径数据,都含有'tool’?

解决方法:

可以考虑先用text(ii,jj)取出相关字符串,再转化为小写,并用strfind进行查找匹配,匹配是否含有指定字符串。

k = 0;

for ii = 1:length(text)

    istool = strfind(lower(text(1,ii)),'tool');

    if isempty(istool{:})==0

        k = k+1;

        tip(k) = ii;

    end

end

tip;     %% 获取字母等级变量的列

该方法istool的结果是个cell,查找到的话值为[1],未查找到则为{[]},因此可以用isempty快速查找出是否匹配。

strfind的例子如下:

    Examples

        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]


 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有