Counting frequency of occurrence in matrix

21 ビュー (過去 30 日間)
Guan Zhao
Guan Zhao 2012 年 10 月 23 日
コメント済み: Brian Derstine 2021 年 8 月 31 日
Good day,
I am attempting to count the number of times each number in a matrix occurred in the matrix.
For example, suppose I have a matrix;
x =
22 23 24 23
24 23 24 22
22 23 23 23
I want an output which will tell me 22 occurred 3 times, 23 occurred 6 times, and 24 occurred 2 times. The actual matrix is larger in size.
Is there a specific function which returns such values or are there any other ways I can resolve this challenge?
  3 件のコメント
Jerry Olup
Jerry Olup 2017 年 6 月 20 日
Let x be your vector. Something like this can save you an unnecessary toolbox:
xx = unique(x); % temp vector of vals
x = sort(x); % sorted input aligns with temp (lowest to highest)
t = zeros(size(xx)); % vector for freqs
% frequency for each value
for i = 1:length(xx)
t(i) = sum(x == xx(i));
end
Then the t vector shows freqs of the sorted, unique vector x.
m_vdv
m_vdv 2018 年 5 月 10 日
Hi, is it also possible to do this without using 'unique' and 'sort'? For example with only using a for loop and/or if loop? Thanks in advance.

サインインしてコメントする。

採用された回答

Andrei Bobrov
Andrei Bobrov 2012 年 10 月 23 日
x =[
22 23 24 23
24 23 24 22
22 23 23 23];
a = unique(x);
out = [a,histc(x(:),a)];
  8 件のコメント
Lavanya T
Lavanya T 2021 年 8 月 17 日
Thank you
Brian Derstine
Brian Derstine 2021 年 8 月 31 日
would be nice if you could just do tabulate(x)

サインインしてコメントする。

その他の回答 (3 件)

Aurelien Queffurust
Aurelien Queffurust 2012 年 10 月 23 日
Using nnz for example:
nnz(x==22)
will return 3
  1 件のコメント
Guan Zhao
Guan Zhao 2012 年 10 月 23 日
Hi,
My actual matrix will have at least 256 elements. I will have to consider zero elements too.
Regards
Guan Zhao

サインインしてコメントする。


Thomas
Thomas 2012 年 10 月 23 日
x=[22 23 24 23
24 23 24 22
22 23 23 23];
[a,b]=hist(x,unique(x));
out=[b' sum((a),2)]

abdelrahim hashem
abdelrahim hashem 2017 年 11 月 15 日
x = [22 23 24 23; 24 23 24 22; 22 23 23 23];
un_x = unique(x);
for i = 1:length(un)
un(i), length(find(x == un_x(i)))
end

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by