如何在单元格数组中搜索特定字符串

Eye*_*zil 2 string matlab cell

我想在matlab单元格中搜索特定的字符串.例如,我的单元格包含一列这样的字符串

variable(:,5) = {'10';'10;20';'20';'10;20';'10';'10';'20'};
Run Code Online (Sandbox Code Playgroud)

我想搜索所有只有'10'并删除它们的单元格.

我尝试使用此语句进行搜索

is10 = ~cellfun(@ isempty , strfind (variable(:,5) , '10'));
Run Code Online (Sandbox Code Playgroud)

但是这将返回所有单元格'10'(包括那些单元格'10;20').

我想只有纯'10'值的细胞

做这个的最好方式是什么?

Sue*_*ver 7

它没有按预期工作,因为strfind允许部分字符串匹配.你想要的是完全匹配.你可以使用strcmp.此外,输入strcmp实际上可以是字符串的单元格数组,因此您可以通过以下方式使用它.

A = {'10';'10;20';'20';'10;20';'10';'10';'20'};
is10 = strcmp(A, '10');
%// 1  0  0  0  1  1  0
Run Code Online (Sandbox Code Playgroud)

你也可以ismember用来做同样的事情.

is10 = ismember(A, '10');
%// 1  0  0  0  1  1  0
Run Code Online (Sandbox Code Playgroud)

作为旁注,大多数字符串函数(包括strfind)实际上可以接受字符串的单元格数组作为输入.因此,在您的初始帖子中,strfind内部的包装cellfun是不必要的.