Matlab:计算文件中唯一字符串的数量

时间:2014-05-09 05:01:21

标签: matlab

我需要在Matlab中执行以下操作。我在制表符或逗号分隔文件中有一个名称列表。例如,

Gregor M. Suka

Mark A. Pizda

Matthew A. Blyad

Mark A. Pizda

我想将此列表加载到Matlab中并计算文件中每个名称的出现次数,即除了Mark A. Pizda之外的所有名称都会出现1次而Mark会有2次出现。

我通常使用howmany.m,但是当我使用textscan函数加载数组时,它给了我单元数组,我无法通过howmany.m计数运行。

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:2)

假设您加载文件并获取单元格数组中的字符串:

strings = {'Gregor M. Suka', 'Mark A. Pizda', 'Matthew A. Blyad', 'Mark A. Pizda'};
[uniqueStrings, ~, v] = unique(strings(:));
occurrence = accumarray(v,1); %// Or: occurrence = histc(v,unique(v));

这给出了

uniqueStrings = 
    'Gregor M. Suka'
    'Mark A. Pizda'
    'Matthew A. Blyad'

occurrence =
     1
     2
     1