如何確定MATLAB矢量中字符串值的相對頻率?如何確定MATLAB矢量中字符串值的相對頻率?
vector = { 'aa', 'f', 'aa', 'f', 'f', 'h', 'k', 'k' };
什麼函數會返回每個唯一元素的出現次數?
如何確定MATLAB矢量中字符串值的相對頻率?如何確定MATLAB矢量中字符串值的相對頻率?
vector = { 'aa', 'f', 'aa', 'f', 'f', 'h', 'k', 'k' };
什麼函數會返回每個唯一元素的出現次數?
類似的問題已經回答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)
產生
編輯:從Eitan T's comment一個借用可以使用histc
代替accumarray
,即
B = histc(n,1:max(n));
+1:I沒有注意到這兩個問題都沒有提出本地解決方案。你可能會更好地使用'histc'而不是'accumarray',它更直觀。 –
@EitanT好點,但我補充說,答案。 –
'[u,〜,n] = unique(vector(:))'中的'〜';'代表??? – 0x90
你可能是指''aa','f','aa','f','f','h','k','k'};' –