How to make matlab count
55 次查看(过去 30 天)
显示 更早的评论
Hello Matlab community,
I wented to know is there a way to create a code to count how many times a number ouccers in a given matrix.
For example I would like to input:
x=input('Numeber')
=[1 2 3 4 5
1 2 3 5 6
7 2 4 3 5]
Is there a way for Matlab to count how many of each number has occured.
Please provide example Thank you so much.
0 个评论
采纳的回答
madhan ravi
2019-6-11
编辑:madhan ravi
2019-6-11
"Is there a way for Matlab to count how many of each number has occured."
The below gives the number of counts of each unique elements in the matrix:
x =[1 2 3 4 5
1 2 3 5 6
7 2 4 3 5]
[uv,~,idx] = unique(x);
n = accumarray(idx(:),1);
% or
n = histc(x(:),uv);
% or
n = sum(x(:).' == uv,2);
Result = [uv,n] % uv - unique elements in the matrix & n - number of times each unique elements appear
Gives:
Result =
1 2
2 3
3 3
4 2
5 3
6 1
7 1
>>
0 个评论
更多回答(4 个)
Star Strider
2019-6-11
x = 5
M=[1 2 3 4 5
1 2 3 5 6
7 2 4 3 5]
Count = nnz(M == x)
producing:
Count =
3
0 个评论
Steven Lord
2019-6-11
If you want the frequency of one particular element from the matrix, use the techniques madhan ravi, Alex Mcaulley, and Star Strider have given.
If you want just the counts for each unique element, use histcounts.
If you want a picture of the frequency data, use histogram. The graphics object histogram returns also has the bin count information in its properties, but if you don't need the picture I would use histcounts and skip the cost (in time and memory) of creating the picture.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multirate Signal Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!