通过matlab搜索另一个文件中的一个文件的文本

时间:2013-12-08 10:08:42

标签: matlab matching text-database

我所拥有的是2列向量变量/文件,每个变量/文件都包含文本条目。假设一个是mx1而另一个是nx1(n> m)。第一个文件中的条目存在于第二个文件中,但可以多次。所以我想要第二个文件的所有索引,条目与第一个文件匹配。例如:

第一个文件包含[am pm cm dm]' 第二个文件包含[am am bm pm pm pm dm em cm]'

所以答案将以[1 2 4 5 6 7 9]'

的形式返回

请帮忙。

OR

如果它可以使第三个文件只有[am am pm pm pm dm cm]等常用条目

1 个答案:

答案 0 :(得分:3)

只需使用ismember

  1. 假设您的字符串包含在单元格数组

    >> cell1 = {'am' 'pm' 'cm' 'dm'};
    cell2 = {'am' 'am' 'bm' 'pm' 'pm' 'pm' 'dm' 'em' 'cm'};
    find(ismember(cell2,cell1))
    
    ans =
    
         1
         2
         4
         5
         6
         7
         9
    
  2. 如果您的字符串都是等长的并且被定义为文本矩阵的行:

    >> matrix1 = ['am';'pm';'cm';'dm'];
    matrix2 = ['am';'am';'bm';'pm';'pm';'pm';'dm';'em';'cm'];
    find(ismember(matrix2,matrix1,'rows'))
    
    ans =
    
         1
         2
         4
         5
         6
         7
         9