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'值的细胞
做这个的最好方式是什么?
它没有按预期工作,因为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是不必要的.
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |