Count the number of occurances of an element using accumarray
5 次查看(过去 30 天)
显示 更早的评论
Now I am trying to find the occurance of an element in a vector using
sum(dta(:,size(dta,2))==3);
How can accumarray be used to find the frequency of elements ?
A = [7 11 2 3 4 5 4 7 7 2 1 4 1];
How can I get a result such as,
- 7 3
- 11 1
- 2 2
- 3 1
- 4 2
and so on.
Thanks in Advance.
P.S: I looked through other threads, but did not understand how it worked. The example given was count = accumarray(A',1) and the result was a vector which was not clear to me.
0 个评论
采纳的回答
Azzi Abdelmalek
2012-12-27
编辑:Azzi Abdelmalek
2012-12-27
A = [7 11 2 3 4 5 4 7 7 2 1 4 1]
[a,b,c ]=unique(A,'stable')
out=[a' accumarray(c,1)]
3 个评论
Azzi Abdelmalek
2013-1-12
A = [7 11 2 3 4 5 4 7 7 2 1 4 1]
[a,b,c ]=unique(A) % you can remove 'stable'
% a is the array containing unique value but in sorted order
%a=[ 1 2 3 4 5 7 11], if you remove 'stable', the result will be sorted
%c=[6 7 2 3 4 5 4 6 6 2 1 4 1] gives the indices of each value of A in a
% for example the 2nd value 11 in A is the 7nth in a
out=[a' accumarray(c,1)], %the result is sorted
1 2
2 2
3 1
4 3
5 1
7 3
11 1
更多回答(1 个)
Sean de Wolski
2012-12-27
I would use histc on the output vector c that you have above from unique()
Frankly you should be able to skip all of that altogether:
[uv, idx] = unique(A);
n = histc(A,uv);
nA = n(idx)
(not tested in ML)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!