我需要在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计数运行。
任何建议都将不胜感激!
答案 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