【问题标题】:Search for an exact match in string在字符串中搜索完全匹配
【发布时间】:2016-02-24 06:36:38
【问题描述】:

在 MATLAB 中给定一个具有以下格式的表格:

  itemids        keywords
    1            3D,children,anim,pixar,3D,3D pixar 
    2            3D,4D pixar,3D car
    ...            ...

我想计算每个关键字在每个项目中重复的次数。所有唯一关键字列表都可以在keywords = {'3D';'Children';'anim';'pixar' ...} 中找到。输出是一个矩阵TF,其行数等于项目数,列数等于length(keywords)

这里的困难之一是为每个字符串搜索精确匹配。我目前正在使用strcmp(),它似乎给所有条目都提供了一个给定的单词,而不是完全匹配。就我而言,我需要区分 3D3D pixar

【问题讨论】:

  • 至少给我们创建表的代码,这样我们就可以进行一些测试。但是,您的任务可以通过strcmp()cellfun() 的组合轻松解决。

标签: matlab


【解决方案1】:

这可以使用 MATLAB 中的 ismember 函数来完成。我假设每个项目的关键字实际上是一个字符串,在这种情况下,您需要在执行ismember 之前拆分关键字。

relevantKeyWords = {'3D','Children','anim','pixar'};
keywordsInItem = strtrim(strsplit(keywordsStr,',')) % Split the words and trim each word

tmp = ismember(relevantKeywords,keywordsInItem); 

tmp 的大小为 1 x 长度(relevantKeywords),表示是否找到了相关关键字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-30
    • 2014-07-14
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多