我想在cellfun
函数上使用strfind
函数来查找另一个字符串数组中字符串的单元格数组中每个字符串的索引,以将其排除在外。
strings = {'aaa','bbb','ccc','ddd','eee','fff','ggg','hhh','iii','jjj'};
excludedStrings = {'b','g','h'};
idx = cellfun('strfind',strings,excludedStrings);
idx = cell2mat = idx;
idx = reshap(idx,numel(idx),1);
idx = unique(idx);
strings(cell2mat(idx)) = [];
cellfun
致电热线有错误,我该如何解决?
答案 0 :(得分:3)
这是一个可爱的单行:
strings = regexprep(strings, excludedStrings, '');
故障:
regexprep
''
)替换上面给出的集合中任何字/字符的每次出现。它会自动对单元格数组string
中的所有元素重复此操作。
如果您还希望从单元格string
中删除任何空字符串,请在上述命令后执行此操作:
strings = strings(~cellfun('isempty', strings));
答案 1 :(得分:2)
我想你是在这之后:
idx = cellfun(@(str) any(cellfun(@(pat) any(strfind(str,pat)),excludedStrings)),strings)
idx =
0 1 0 0 0 0 1 1 0 0
之后你当然可以申请:
strings(idx) = [];
因为您有两个要交叉检查的单元格数组(其中一个是数组),所以需要嵌套两个cellfun
。