使用unique用于此目的,它可以在电池阵列工作太:
[U, ic, iu] = unique(C);
Run Code Online (Sandbox Code Playgroud)
C你的细胞阵列在哪里.U是一个新的单元格数组,具有相同的值C但没有重复.然后,您可以使用histc以下方法计算每个值的出现次数:
[U, ic, iu] = unique(C);
count = histc(iu, 1:numel(ic))
Run Code Online (Sandbox Code Playgroud)
为了示例,我们首先生成一个字符串的随机单元格数组:
strings = {'foo'; 'bar'; 'baz'; 'bang'};
C = strings(ceil(numel(strings) * rand(6, 1)))
Run Code Online (Sandbox Code Playgroud)
这应该生成这样的东西:
C =
'bang'
'baz'
'foo'
'bang'
'bar'
'foo'
Run Code Online (Sandbox Code Playgroud)
现在我们计算每个值的出现次数C:
C = strings(ceil(numel(strings) * rand(6, 1)));
[U, ic, iu] = unique(C);
count = histc(iu, 1:numel(ic))
Run Code Online (Sandbox Code Playgroud)
这应该导致:
U =
'foo'
'bar'
'baz'
'bang'
count =
2
1
1
2
Run Code Online (Sandbox Code Playgroud)
这意味着'foo'和'bang'重复两次,而剩下的只有一次,这是正确的.
如果您只对真正独特的价值感兴趣,您可以:
U(count == 1)
Run Code Online (Sandbox Code Playgroud)
哪个应该在我们的示例中返回:
'bar'
'baz'
Run Code Online (Sandbox Code Playgroud)
请注意,每个元素count代表相应的值U(不是strings,它们可能具有不同的顺序).