Counting the number of appearance of a value in a loop

1 次查看(过去 30 天)
Hi everyone,
I have the following matrix called all_indices_pesi in matlab:
consisting of the first column being a column of zeros and ones and the second column a column of indices which possibly repeat within the vector. Now my aim is the following:
  1. I would like to count the number of times an index appear in column 2 (so for insstance how many times does the element 78818 appear in the second column? How many times doess 78824 appears? and so on...). Let's call it num_instances;
  2. I would like to count the number of timess that a certain index in column 2 has a value of 1 in column 1. Let's call it num_ones;
  3. I would like to see, for each unique element of column 2 the share "num_ones/num_instances" and project it into a 646x151 matrix in the places indicated by the unique indices in column 2
Thank you

采纳的回答

Walter Roberson
Walter Roberson 2022-7-6
编辑:Walter Roberson 2022-7-6
[G, value] = findgroups(all_indices_pesi(:,2));
count = accumarray(G, 1);
num_instances = table(value, count);
See findgroups documentation
See also grpstats
  2 个评论
federico nutarelli
@Walter Roberson Thanks for the comment. How can I the wrap all up in a 646x151 matrix in the places sspecified by all_indices_pesi(:,2)? Thank you
Walter Roberson
Walter Roberson 2022-7-6
If the 151 corresponds to the number of different values that can appear in column 1, then
[G2, value2] = findgroups(all_indices_pesi(:,2));
[G1, value1] = findgroups(all_indices_pesi(:,1));
count = accumarray([G2, G1], 1);
row #J corresponds to column 2 value value2(J)
column #K corresponds to column 1 value value1(K)
So count(J,K) is the count for column 2 value value2(J) in combination with column 1 value value1(K)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by