0

我拥有的是 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]'

请帮忙。

或者

如果它可以制作只有常见条目的第三个文件,例如 [am am pm pm pm dm cm]

4

1 回答 1

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
    
于 2013-12-08T13:36:37.693 回答