2013-07-01 42 views

回答

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)); 
+2

+1:I沒有注意到這兩個問題都沒有提出本地解決方案。你可能會更好地使用'histc'而不是'accumarray',它更直觀。 –

+0

@EitanT好點,但我補充說,答案。 –

+0

'[u,〜,n] = unique(vector(:))'中的'〜';'代表??? – 0x90