如何在matlab中找到同一行中的两个不同的字符串

时间:2017-06-05 07:59:43

标签: string matlab find

我有一个从文本扫描中获取的单元格,我想找到包含特定字符串的行索引

fid = fopen('data.txt');
E = textscan(fid, '%s', 'Delimiter', '\n');

我想知道具有特定文本的那些行的行号(索引),例如我想找到包含关键字" 2016":

的行
rows = find(contains(E{1},"2016" );

但我想找到那些有两个关键字" 2016"和#34; Mathew Perry" (只有那些同时包含两个关键字的行。)

我尝试使用此代码但无法正常工作

rows = find(contains(E{1},"2016" && contains(E{1},"Mathew Perry");

我得到的错误是:

  

操作数到||和&&运算符必须可转换为逻辑标量值。

1 个答案:

答案 0 :(得分:0)

要查找单个字符串:

idx = strfind(E{1}, '2016');
idx = find(not(cellfun('isempty', idx)));

使用 strfind 代替find。你可以尝试以上和/或。如果它工作正常,那么没问题;如果没有,则为每个单词分别获取索引并获得索引的交集。