假设我们有这个单元格数组:
X = {'Good' 'Bad' 'Good';
'Bad' 'Good' 'Bad';
'Bad' 'Bad' 'Bad';
'Good' 'Bad' 'Good';
'Good' 'Good' 'Good'};
如何计算每行中Good
和Bad
的出现次数?
感谢。
答案 0 :(得分:3)
假设在这样的输入单元阵列中每行具有相同数量的元素或单元格,则每行计数{'Good'}
个单元的快速解决方案 -
count = sum(strcmp(X,{'Good'}),2)
对{'Bad'}
使用相同的规则。
如果strcmp
拖慢您的速度,您可以使用char
代替我个人最喜欢的bsxfun
。
{'Good'}
-
Xchar = char(X{:})
count = sum(reshape(all(bsxfun(@eq,Xchar(:,1:numel('Good')),'Good'),2),size(X)),2)
{'Bad'}
-
count = sum(reshape(all(bsxfun(@eq,Xchar(:,1:numel('Bad')),'Bad'),2),size(X)),2)
答案 1 :(得分:1)