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

par*_*min 0 matlab

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

vector = { 'aa', 'f', 'aa', 'f', 'f', 'h', 'k', 'k' };
Run Code Online (Sandbox Code Playgroud)

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

Moh*_*nia 5

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

vector = { 'aa', 'f', 'aa', 'f', 'f', 'h', 'k', 'k' };
Run Code Online (Sandbox Code Playgroud)

一个人可以使用

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

哪个产生

在此输入图像描述

编辑:借用Eitan T的评论,可以使用histc而不是accumarray,即

B = histc(n,1:max(n));
Run Code Online (Sandbox Code Playgroud)

  • +1:我没有注意到这两个问题都没有提出原生解决方案.您可能更好地使用`histc`而不是`accumarray`,它更直观. (2认同)