我有一个像这样的单元格P = {Face1 Face6 Scene6 Both9 Face9 Scene11 Both12 Face15}。我想计算P中的两个Face值,Scene值和两个值。我不在乎字符串后面的数字值(即Face1和Face23将被计为两个)。我已经尝试了以下操作(针对Face),但出现错误“如果任何输入参数是单元格数组,则第一个必须是字符串的单元格数组,第二个必须是字符数组”。
strToSearch='Face';
numel(strfind(P,strToSearch));
有人有什么建议吗?谢谢!
使用regexp
发现启动(串^
)与所需的文本(如'Face'
)。结果将是一个单元格数组,其中每个单元格都包含1
一个匹配项([]
否则)。因此,确定每个单元格是否为非空(~cellfun('isempty', ...)
:将1
为非空单元格和0
空单元格提供逻辑),并将结果相加(sum
):
>> P = {'Face1' 'Face6' 'Scene6' 'Both9' 'Face9' 'Scene11' 'Both12' 'Face15'};
>> sum(~cellfun('isempty', regexp(P, '^Face')))
ans =
4
>> sum(~cellfun('isempty', regexp(P, '^Scene')))
ans =
2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句