我有一个从文本扫描中获取的单元格,我想找到包含特定字符串的行索引
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");
我得到的错误是:
操作数到||和&&运算符必须可转换为逻辑标量值。
答案 0 :(得分:0)
要查找单个字符串:
idx = strfind(E{1}, '2016');
idx = find(not(cellfun('isempty', idx)));
使用 strfind 代替find。你可以尝试以上和/或。如果它工作正常,那么没问题;如果没有,则为每个单词分别获取索引并获得索引的交集。