如何确定MATLAB向量中字符串值的相对频率?

时间:2013-07-01 15:42:11

标签: matlab

如何确定MATLAB向量中字符串值的相对频率?

vector = { 'aa', 'f', 'aa', 'f', 'f', 'h', 'k', 'k' };

什么函数会返回每个唯一元素的出现次数?

1 个答案:

答案 0 :(得分:5)

类似的问题已经回答here,需要来自FEX的文件。您可以在MATLAB中使用内置函数。说,

vector = { 'aa', 'f', 'aa', 'f', 'f', 'h', 'k', 'k' };

可以使用

[u,~,n] = unique(vector(:));
B = accumarray(n, 1, [], @sum);
bar(B)
set(gca,'XTickLabel',u)

产生

enter image description here

编辑:借用Eitan T's comment借用histc代替accumarray,即

B = histc(n,1:max(n));