我有2个字符串单元格阵列,一个是另一个的独特版本。我想计算给定其他单元阵列的唯一单元阵列中每个值的出现次数。我有一个大的单元阵列,所以我想我会尽力找到更快的方法的答案,因为它反对循环...
一个例子:
x = {'the'
'the'
'aaa'
'b'
'the'
'c'
'c'
'd'
'aaa'}
y=unique(x)
我正在寻找包含以下内容的任何形式的输出:
'aaa' = 2
'b' = 1
'c' = 2
'd' = 1
'the' = 3
有什么想法吗?
答案 0 :(得分:3)
一种方法是计算索引unique
找到:
[y, ~, idx] = unique(x);
counts = histc(idx, 1:length(y));
给出了
counts =
2
1
2
1
3
与y
的顺序相同。
histc
是我计算内容的默认回退,但在这种情况下the function I always forget about可能更好:
counts = accumarray(idx, 1);
应该给出相同的结果,并且可能更有效。